Javascript 从img标记中删除onclick事件

Javascript 从img标记中删除onclick事件,javascript,Javascript,这是我的密码: <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://"&

这是我的密码:

<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>
如有任何意见,将不胜感激

编辑: 有没有办法阻止函数dropit执行,可以使用javascript吗。页面加载等

另一个选项是我可以使用javascript重命名img文件吗???

var eles=document.getElementById('cmdt_1_1d')。getElementsByTagName('img');
var eles = document.getElementById('cmdt_1_1d').getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = function() {
     return false;
   }
对于(变量i=0;i
尝试以下方法:

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

答案很多,但最简单的是:

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

在你的问题中,你已经有了这样做的代码。也许你的问题不是如何禁用它,而是如何在不禁用所有图像和不知道id的情况下隔离此特定图像。很好-我完全没有想到removeAttribute-这可能是最明智的方法,而不是拦截/覆盖它-只是删除它!是的,不寻常,但对于“obstrusive”javascript它应该可以工作:-)@Bergi您对untrusive的定义似乎与其他人不同,您的答案只是简单的JS。“不引人注目的”javascript将等待文档加载,测试元素是否存在,然后在调用它之前测试removeAttribute是否受支持。@RobG:是的,这是真的。我说的“突兀”是指html源代码中硬编码的事件属性。谢谢Gabe,它工作得很好,但我想知道有没有办法禁用div中的所有img标记。因为会有很多图像文件,而且不知道名称。有可能吗???吹毛求疵:(虽然这是一个很好的答案)没有getElement\u s\u ById-每个Id只有一个元素(应该是)。你知道它们所在的div的名称吗?CSS选择器是非常强大的-你当然可以这样做,只要你知道一些关于图像将在哪里。类似于
document.querySelectorAll(“div#thatContainsImages img”)
将为您获取该div的所有img标记后代的节点列表。@Gabe将onclick属性值替换为新函数,最好将其设置为“”(空字符串),这样就根本没有侦听器(并且存在语法错误)。我建议使用
eles[i] .onclick=null
。它将确保不附加onclick事件。
document.getElementById('cmdt_1_1i').removeAttribute("onclick");
document.getElementById('cmdt_1_1i').onclick = '';