webForumDet fria alternativet

Lägga egenskaper på allt med speciell class?

JavaScript

4 svar · 237 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Undar om det går att lägga till onclick-events och annat lull-lull på element (divar,tabeller o.s.v) med en speciell class.
Låt säga att jag har en div som har class-namnet: ClickCel
Och när jag tar in sidan så läggs andra egenskaper till på dessa ställen. ex.
<div class="ClickCel" onclick="gorNagot();">

Medlem sedan dec. 20025 483 inlägg
#2

Så här kanske:

<script type="text/javascript">
<!--

function addClassElementEvent(_class, _event, _func){
	var elms = document.getElementsByTagName("*");

	for(var i=0; i<elms.length; i++){
		if(elms[i].className == _class){
			if(document.documentElement.addEventListener)
				elms[i].addEventListener(_event.substring(2, _event.length), _func, false);
			if(document.documentElement.attachEvent)
				elms[i].attachEvent(_event, _func);
		}
	}
};

function bar(){
	alert("bar!");
};

window.onload = function(){
	addClassElementEvent("foo", "onclick", bar);
};

//-->
</script>

...
<div class="foo">Klicka</div>
...

:)

Medlem sedan nov. 20017 144 inlägg
#3

Nu vet jag att jag bråkar, men det var tänkt att detta skulle inplementeras med mitt "högerklicks-script".
Alltså allt med en speciell klass skall få denna egenskap så att säga.(blå ram)

Medlem sedan feb. 2003774 inlägg
#4

Snygg lösning , men det verkar tyvärr som om

document.getElementsByTagName('*')

inte fungerar med IE 5 eller IE 5.5, prova med alerta
elms.length
och IE 5 returnerar 0

Vore intressant att veta om det finns en work-around för detta problem.

:(

Medlem sedan dec. 20025 483 inlägg
#5

getElementsByTagName() fungerar i IE5 och uppåt, men däremot stöder den inte "wildcard"-tecknet "*". Men självklart finns det en "work-around" ;) :

function addClassElementEvent(_class, _event, _func){
	var elms = (document.all) ? document.all : document.getElementsByTagName("*");
...

:)

530 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
157 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
152 ms — ändringar (db)