Jump to content
brunoais

Erro a processar o top e left.

Recommended Posts

brunoais

Eu tenho um código em javascript que arranjei na internet.

Quando tento pô-lo a funcionar na minha página ele adiciona informação, em CSS num atributo style, num div, antes da tag input.

Aqui está um exemplo do que acontece ao código:

de:

<div style="position:absolute; width: 413px; left: 156px; top: 190px;">
	<label for="searchFor">Search for:</label>
	<input type="text" maxlength="2500" style="width: 412px" id="searchFor">
</div>

fica:

<div style="position: absolute; width: 413px; left: 156px; top: 190px;">
	<label for="searchFor">Search for:</label>
	<div style="left: 156px; top: 225px; width: 418px; z-index: 99; visibility: hidden;" class="autocomplete"><div style="z-index: 99;" index="0" id="autocomplete_item_0" class="autocomplete_item_highlighted">banana</div><div style="z-index: 99;" index="1" id="autocomplete_item_1" class="autocomplete_item">bief</div></div><input autocomplete="off" maxlength="2500" style="width: 412px;" id="searchFor" type="text">

</div>

No entanto, há um problema.

Quando este código é executado, o browser (firefox 3 e firefox 4) lança dois warnings que tenho a certeza que ocorrem no 2º div que vêm em cima:

(nota: substitui os caminhos por ?. Os erros aplicam-se ao próprio ficheiro e não ficheiros só com CSS.)

Warning: Error in parsing value for 'left'.  Declaration dropped.

Source file: ?

Warning: Error in parsing value for 'top'.  Declaration dropped.

Source file: ?

o doctype é: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> (HTML4.01 strict)

O código js relevante é:

        __AutoComplete[id]['dropdown'].style.left       = left + 'px';
        __AutoComplete[id]['dropdown'].style.top        = top + 'px';
        __AutoComplete[id]['dropdown'].style.width      = width + 'px';
        __AutoComplete[id]['dropdown'].style.zIndex     = '99';
        __AutoComplete[id]['dropdown'].style.visibility = 'hidden';

__AutoComplete -> é um array aonde guarda os id de todos os elementos que é suposto ter aquela transformação indicada em cima.

__AutoComplete[id]['dropdown'] -> é o HTML div node que irá ter os div com os vários valores. Em cima, é este div:

<div style="left: 156px; top: 225px; width: 418px; z-index: 99; visibility: hidden;" class="autocomplete">

A class autocomplete contem:

.autocomplete {
    font-family: Tahoma;
    font-size: 8pt;
    background-color: white;
    border: 1px solid black;
    position: absolute;
    cursor: default;
    overflow: auto;
}

O que é que está errado? Aonde é que está o erro?

Se precisarem de mais info, é só pedir!

ADD:

Para evitar a pergunta:

Na consola de erros só aparece mesmo estes 2 warnings. Não aparecem errors nem messages.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
mjamado

O que é que contêm as variáveis left e top usadas?

Coloca lá um alert com elas - dois cêntimos em como são null ou undefined...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
brunoais

Os alerts:

left:156

top:225

Para isso alterei o código como indicado:

        // Position it
        __AutoComplete[id]['dropdown'].style.left       = left + 'px';alert("left:" + left);
        __AutoComplete[id]['dropdown'].style.top        = top + 'px';alert("top:" + top);

Quero os meus dois cêntimos! Podes começar a pagar :)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
mjamado
Quero os meus dois cêntimos! Podes começar a pagar :cheesygrin:

Aceitas VISA?  :)

E o erro é exactamente dessa linha (vê no Firebug)?


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
brunoais

É nessa linha... Mas é estranho... Ele dá o erro, depois, se voltar a processar aquele código ele já n dá o erro...

"That's f*c*ing wierd"!

Depois de analizar mais profundamente,

Ele precisa de executar aquele código 2x para fazer o que é preciso.

Na 1ª ele reajusta-se (ainda n sei bem o q faz), na 2ª ele escreve o div e coloca tudo.

Na 1ª passagem cria aquele warning, depois, qd faz o div, ele fica bem... Se n arranjares solução, vou então deixar ficar assim....


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
mjamado

E em ambas as "passagens" ele tem valores nas variáveis?

O que eu acho é que deves ter aí nodos sem top e left (o que é normal), e depois ficas sem valores, o que a settar não é agradável...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
brunoais

E em ambas as "passagens" ele tem valores nas variáveis?

O que eu acho é que deves ter aí nodos sem top e left (o que é normal), e depois ficas sem valores, o que a settar não é agradável...

Sim. Ele tem sempre valores.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.