Portál AbcLinuxu, 4. června 2025 08:44


Dotaz: innerHTML v JS ve FireFoxu

HrabalVojta avatar 5.2.2011 12:23 HrabalVojta | skóre: 23 | blog: gentoo_pentoo | Třebíč
innerHTML v JS ve FireFoxu
Přečteno: 205×
Odpovědět | Admin

Mám problém s tímhle scirptem, který nereaguje na události ve FireFoxu.

var gal = {
	init : function() {
   	if (!document.getElementById || !document.createElement || !document.appendChild) return false;
		var li = document.getElementById('gallery').getElementsByTagName('img');
		li[0].className = 'active';
		for (i=0; i';
			gal.addEvent(li[i],'click',function() {
				var im = document.getElementById('gallery').getElementsByTagName('img');
				for (j=0; j';
			});
		}
	},
	addEvent : function(obj, type, fn) {
		if (obj.addEventListener) {
			obj.addEventListener(type, fn, false);
		}
		else if (obj.attachEvent) {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent("on"+type, obj[type+fn]);
		}
	}	
}
gal.addEvent(window,'load', function() {
gal.init();

});
USE="freedom -software_patents" emerge --deep --update --newuse world
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.2.2011 14:32 chrono
Rozbalit Rozbalit vše Re: innerHTML v JS ve FireFoxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Originál toho skriptu funguje aj vo Firefox, takže ak ti to nefunguje, musel si tam niečo upraviť. Keďže je ten tvoj kód nekompletný a poškodený, nedá sa zistiť, čo sa vlastne zmenilo. navyše innerHTML sa v originálnom skripte vôbec nepoužíva a ak tým meníš elementy ktorým si pridal obsluhu udalosti, tak je skôr prekvapujúce, že to niekde funguje (a nie to, že to nefunguje vo Firefox).

PS: Pri takomto niečom je rozumnejšie použiť delegovanie udalostí, takže sa obsluha udalosti nebude musieť pridávať ku každému elementu a bude to aj odolnejšie na zmenu pomocou innerHTML.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.