2012-05-23 8 views
5

Herezje mój kod:Usuń zdarzenie onclick z img tag

<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> 

Niestety nie mogę zmodyfikować ten plik, czy istnieje sposób przy użyciu javascript, aby wyłączyć onclick wyłącznie z tagu img.

Użyłem tego skryptu, ale wyłącza on zdarzenie onclick ze wszystkich obrazów. Ale chcę tylko z tego komponentu. Wszelkie pomysły zostaną docenione.

Edytowane: Czy istnieje sposób, aby zatrzymać wykonywanie dropit funkcji, czy jest to możliwe przy użyciu javascript. Na stronie ładowanie, itp.

inna opcja to czy mogę zmienić nazwę pliku img za pomocą javascript ??

+0

Czy jQuery wykorzystywane na stronie? –

+0

Mogę używać tylko javascript. – jbcedge

+2

Masz już kod, aby to zrobić w swoim pytaniu. Być może twoim pytaniem nie jest, jak wyłączyć to tak bardzo, jak wyizolować ten konkretny obraz bez wyłączania wszystkich obrazów i bez znajomości identyfikatora. –

Odpowiedz

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

dzięki Gabe działa dobrze, ale chcę wiedzieć, czy istnieje sposób, aby wyłączyć wszystkie znaczniki img wewnątrz div. Ponieważ będzie wiele plików graficznych i nie będę znać nazw. Czy to możliwe??? – jbcedge

+1

Nit pick: (choć jest to dobra odpowiedź) nie ma getElement_s_ById - istnieje tylko jeden (prawdopodobnie) jeden element na identyfikator. – JKing

+0

@jazzrai - zaktualizowano. – Gabe

1

spróbować czegoś takiego:

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 - Całkowicie nawet nie myślałem o usunięciuAttribute - to chyba najbezpieczniejszy sposób, aby to zrobić, zamiast przechwytywać/nadpisywać - po prostu go usunąć! – JKing

+0

Tak, nietypowy, ale dla "obstrus" javascript powinien działać :-) – Bergi

+0

@ Bergi - twoja definicja dyskretnego wydaje się inna niż u innych, twoja odpowiedź jest po prostu JS. "Nierzucający się w oczy" javascript czekałby na załadowanie dokumentu, sprawdzałby, czy element istnieje, a następnie przetestował by sprawdzić, czy * removeAttribute * był obsługiwany przed wywołaniem go. – RobG

3

Wiele odpowiedzi, ale najprostszą jest:

document.getElementById('cmdt_1_1i').onclick = ''; 
Powiązane problemy