2012-05-23 8 views
5

Heres meinen Code:von Onclick-Ereignisse Remove tag img

<div id="cmdt_1_1d" class="dt_state1" onclick="sel_test(this.id)"> 
<img id="cmdt_1_1i" onclick="dropit('cmdt_1_1');" src="/site/hitechpackaging/images/items/bags_menu.jpg "> 
<span class="dt_link"> 
<a href="javascript://">BAGS</a> 
</span> 
</div> 

Leider kann ich diese Datei nicht ändern, ist es eine Möglichkeit, Javascript, nur die Onclick aus dem img-Tag zu deaktivieren, verwenden.

Ich benutzte dieses Skript, aber es deaktiviert das onclick-Ereignis von allen Bildern. Aber ich will nur von dieser Komponente

var anchorElements = document.getElementsByTagName('img'); 
// for (var i in anchorElements) 
// anchorElements[i].onclick = function() { 
     // alert(this.id); 
//  return false; 
// } 

Alle Ideen werden geschätzt.

Bearbeitet: Gibt es eine Möglichkeit, die Funktion dropit zu stoppen, ist es möglich, Javascript zu verwenden. Beim Laden der Seite usw.

eine andere Möglichkeit ist, kann ich die IMG-Datei mit Javascript umbenennen?

+0

Ist jQuery auf der Seite verwendet? –

+0

Ich kann nur Javascript verwenden. – jbcedge

+2

Sie haben den Code, um es in Ihrer Frage zu tun. Vielleicht ist Ihre Frage nicht, wie Sie es deaktivieren, sondern wie Sie dieses bestimmte Bild isolieren, ohne alle Bilder zu deaktivieren und ohne die ID zu kennen. –

Antwort

11
var eles = document.getElementById('cmdt_1_1d').getElementsByTagName('img'); 
for (var i=0; i < eles.length; i++) 
    eles[i].onclick = function() { 
    return false; 
    } 
+0

danke Gabe es funktioniert gut, aber ich möchte wissen, gibt es eine Möglichkeit, alle img-Tag in einem div zu deaktivieren. Weil es viele Bilddateien gibt und die Namen nicht bekannt sind. Ist es möglich??? – jbcedge

+1

Nit pick: (obwohl es eine gute Antwort ist) gibt es keine getElement_s_ById - es gibt immer nur ein Element pro ID. – JKing

+0

@jazzrai - aktualisiert. – Gabe

1

versuchen, etwas wie folgt aus:

var badImage = document.getElementById("cmdt_1_1i"); 
badImage.onclick = null; 
badImage.addEventlistener("click",function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    return null; 
},true); 
16
document.getElementById('cmdt_1_1i').removeAttribute("onclick"); 
+0

nice - Ich habe noch nicht einmal an removeAttribute gedacht - das ist wahrscheinlich der vernünftigste Weg, es zu tun, anstatt es abzufangen/zu überschreiben - entferne es einfach! – JKing

+0

Ja, ungewöhnlich, aber für "obszön" JavaScript sollte es funktionieren :-) – Bergi

+0

@ Bergi-Ihre Definition von unaufdringlich scheint anders zu sein, Ihre Antwort ist einfach JS. "Unaufdringliches" JavaScript würde auf das Laden des Dokuments warten, würde prüfen, ob das Element existiert, und dann testen, ob * removeAttribute * vor dem Aufruf unterstützt wurde. – RobG

3

Viele Antworten, aber die einfachste ist:

document.getElementById('cmdt_1_1i').onclick = '';