Esse é um problema bem comum atualmente. Seu erro é o seguinte:
A função que você usa espera que o segundo parâmetro seja um objeto
Function. Ele seria se você passasse "gRes" somente, só que aí o
navegador automaticamente passaria apenas um parâmetro pra ela, com o
objeto Evento decorrido do click. A idéia óbvia -- e eu já pensei
assim antes -- é passar um function() e dentro dele chamar a sua
função passando os parâmetros. Até parece ok, só que o único problema
é: o retorno do function, que é o que vai ser efetivamente passado na
chamada do addEventListener.
Ao usar "gRes(blablabla, blablabla);" você está invocando a
função, e o retorno para a chamada do "addEventListener" passa a ser o
retorno da função gRes, e não um objeto function em si. O que acaba
acontecendo, no final das contas, é a função gRes ser chamada apenas
uma vez, na ocasião da atribuição, e o retorno dela tentar ser
executado no evento.
O que fazer, nesse caso? Use closures.
objeto.addEventListener('click',
function(a) { var b=this;
return function() { gRes.apply(window, [a, b]); }
}.apply(this, [page['resultSet_2'][i].ID]),
false);
--
diego nunes
dnunes.com
a outra forma q eu não mencionei é usando closures... ;]~
--
Jonas Raoni Soares Silva
http://www.jsfromhell.com
Só avisando que eu falei um pouco de besteira na mensagem
anterior. No final das contas a solução funciona da mesma forma, eu
acho...
--
diego nunes
dnunes.com
nrow.ident = page['resultSet_2'][i].ID;
é tosco mas funciona.
eu particularmente não gosto de criar novas propriedade para elementos
'nativos' do JS ou do DOM.
mas na prática você só está aumentando um tiquinho de memória alocada
(se for poucos elementos) e terá sua tabela de hashes ampliada. Isso
atrapalhará caso você queira futuramente pegar todas as propriedades
nativas daquele objeto usando loop 'for in'.
On 7/13/06, Lucas Peres da Silva <mys...@gmail.com> wrote:
seu ie deve tá zuado xD
<div id="blabla"></div>
var x = document.getElementById("blabla");
x.setAttribute("lala", "lóló");
alert(x.getAttribute("lala"));
a única merda q dá é q no IE é em relação a última linha... o IE tb
adiciona o atributo a lista de propriedades do objeto, mas o ff mantém
cada um no seu canto (q é o correto)
faltou a última linha xD
alert(x.lala);
Não está não.
Mas acho que só em IEcas mais antigos isso acontece.
Não lembro qual (ou quais) navegador que seta ou pega atributos via
JS, apenas aqueles que estão estipulados no DTD.
Quanto aos hashes, o que eu quis dizer é que se perde a relação nativa
de objetos quando se adiciona uma propriedade SUA.
isso eu não sei, só lembro q eu fiz esse teste tem uns anos já...
ignora o ie's antigos ae kkkkk, tem certas coisas q devem ser
esquecidas, ainda mais essa q só depende do usuário dar uma atualizada
ou puxar um browser novo :b
> Não lembro qual (ou quais) navegador que seta ou pega atributos via
> JS, apenas aqueles que estão estipulados no DTD.
isso faz sentido, uma vez q não é correto adicionar um atributo
inválido no elemento via html, o mesmo deveria valer para o js... mas
nunca vi um browser q seja tão rígido qto a isso... coloca a url ae ;]
> Quanto aos hashes, o que eu quis dizer é que se perde a relação nativa
> de objetos quando se adiciona uma propriedade SUA.
eh, o ideal é não adicionar nada... tanto os atributos quanto as
propriedades podem gerar colisão de nomes com outros scripts, nos
atributos ainda tem o tal do namespace (q tb pode ser simulado no js),
mas sei lá, toda regra tem sua exceção xD
ex: vc tem uma lista de elementos num array e precisa ter acesso ao
índice de um certo elemento, é muito mais prático e rápido guardar o
índice no próprio elemento do q circular na array procurando o
objeto... como na maioria das vezes esse elemento é recebido de um
evento, tem outras alternativas (o assunto desse tópico kkkkkk), mas
seria um bom caso para guardar algo no elemento ;]
> isso faz sentido, uma vez q não é correto adicionar um atributo
> inválido no elemento via html, o mesmo deveria valer para o js... mas
> nunca vi um browser q seja tão rígido qto a isso... coloca a url ae ;]
http://www.quirksmode.org/dom/tests/attributes2.html
Mas tem mais coisas aqui:
http://tinyurl.com/g7d3z
É porque fiquei com preguiça (e porque tenho que ficar configurando
umas coisas chatas aqui.), hahahaha.