Вопрос по javascript – Удалить событие onclick из тега img

10

Вот мой код:

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

К сожалению, я не могу изменить этот файл, есть ли способ с помощью javascript отключить onclick только из тега img.

Я использовал этот скрипт, но он отключил событие onclick для всех изображений. Но я хочу только от этого компонента

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

Любые идеи будут оценены.

Отредактировано: Есть ли способ остановить выполнение dropit функции, это возможно с помощью JavaScript. На странице загрузки и т. Д.

Другой вариант я могу переименовать файл IMG, используя JavaScript ??

Я могу использовать только JavaScript. jbcedge
Используется ли на странице jQuery? Joel Etherton
У вас уже есть код для этого в вашем вопросе. Возможно, ваш вопрос не в том, как его отключить, а в том, как изолировать это конкретное изображение, не отключая все изображения и не зная идентификатора. Joel Etherton

Ваш Ответ

4   ответа
11
var eles = document.getElementById('cmdt_1_1d').getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = function() {
     return false;
   }
Nit pick: (хотя это хороший ответ) нет getElement_s_ById - только один (должен быть) один элемент на Id.
спасибо Гейб, он работает нормально, но я хочу знать, есть ли способ отключить все теги img внутри div. Потому что там будет много файлов изображений и не будут знать имена. Является ли это возможным??? jbcedge
@jazzrai - обновлено.
Спасибо большое, Гейб .... оценил jbcedge
Вы знаете имя div, в котором они находятся? CSS-селекторы очень мощные - вы, конечно, можете делать это, если знаете, где будут изображения. Что-то вродеdocument.querySelectorAll("div#thatContainsImages img") Вы получите NodeList всех тегов img, потомка этого div.
0

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

document.getElementById('cmdt_1_1i').onclick = '';
25
document.getElementById('cmdt_1_1i').removeAttribute("onclick");
Да, необычно, но для "навязчивого" JavaScript должен работать :-)
@RobG: Да, это правда. С "навязчивым" Я имел в виду жестко закодированные атрибуты события в источнике html.
@ Bergi & # x2014; ваше определение ненавязчиво кажется другим другим, ваш ответ - просто JS. & Quot; Ненавязчивый & Quot; javascript будет ожидать загрузки документа, будет проверять, существует ли элемент, а затем будет проверять, есть лиremoveAttribute была поддержана перед вызовом.
приятно - я даже не думал об removeAttribute - это, вероятно, самый разумный способ сделать это, а не перехватывать / перезаписывать его - просто удалите его!

Похожие вопросы