Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ramael

[Resolvido] Utilizando addEventListener e attachEvent

Recommended Posts

Como já vi muito por aew e achei interessante, estou “tentando” retirar todo o JavaScript do meu HTML colocando-o em um arquivo externo. Então bolei essa função pra colocar os eventos em todo o site:

 

function _clickGeral(nomeId, evento, funcaoChamada) {
var obj = document.getElementById(nomeId);
if (window.addEventListener) {
	eval('obj.addEventListener('+"evento"+', function () { _'+funcaoChamada+'; }, true)');
}
else if (window.attachEvent) {
	obj.attachEvent('on'+evento, function (){'_'+funcaoChamada});
}
}

 

Obviamente que no Firefox, Chrome e Opera funciona que é uma belezinha, mas como de praxe o IE insiste em ficar fazendo charme e se fazendo de difícil.

 

Tentei escrever a parte do attachEvent de diversas formas, na medida que fui pesquisando, mas o IE sempre acusava erro, dessa forma que postei não dá erro nenhum, mas nem por isso funciona. Gostaria de um auxilio pra encontrar a maneira correta de escrever essa parte da função.

 

Vlw pessoal

 

 

 

T+

Ramael

Compartilhar este post


Link para o post
Compartilhar em outros sites

bacana @Ramael, parabéns.

Nem tive tempo de passar por este topico.

 

Poste como resolveu, pode ajudar mais pessoas.

Afinal é esta a ideia do forum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei na empolgação e esqueci de postar a solução, que já estava praticamente resolvido mesmo. A linha do else if ficou dessa forma:

	else if (window.attachEvent) {
	eval('obj.attachEvent('+"'on'+evento"+', function () {_'+funcaoChamada+'} )');
}
}

Tive que utilizar o "eval", pois o IE não entendia o "onclick" somente com a soma do "on+click" e também acrescentei as aspas no evento. Foi "só isso"....

rsssssss foi um "só isso" que me deu dor de cabeça por uns dias.

 

 

t+

Ramael

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. cara, olhando agora mais detalhadamente, pesquise sobre funções callback javascript, é um conceito bem interessante.

e acredito que se aplica a esse teu caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente muito interessante !!!

Eu já adotava uma prática que nem sabia que tinha nome.

Tenho algumas funções que sempre uso em meus projeto, geralmente pra mudar algumas propriedades de objetos do HTML e coisas simples assim. Já as preparei dessa mesma forma que essa de adicionar os eventos...

uma função "callback" para adicionar "handlers".

Rsssss

 

tô parendendo.....

 

 

 

t+

Ramael

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.