21

这是我的代码:

<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来禁用img标签的onclick。

我正在使用这个脚本,但它禁用了所有图像的 onclick 事件。但我只想要这个组件

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

任何想法将不胜感激。

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

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

4

5 回答 5

52
document.getElementById('cmdt_1_1i').removeAttribute("onclick");
于 2012-05-23T01:20:14.753 回答
16
var eles = document.getElementById('cmdt_1_1d').getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = function() {
     return false;
   }
于 2012-05-23T01:16:18.290 回答
7

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

document.getElementById('cmdt_1_1i').onclick = '';
于 2012-05-23T01:56:47.727 回答
0

尝试这样的事情:

var badImage = document.getElementById("cmdt_1_1i");
badImage.onclick = null;
badImage.addEventlistener("click",function(e){
    e.preventDefault();
    e.stopPropagation();
    return null;
},true);
于 2012-05-23T01:17:42.797 回答
0

如果您以后需要恢复 onclick 属性,可以在覆盖之前将其保存在字段中:

document.getElementById(id).saved=document.getElementById(id).onclick;
document.getElementById(id).onclick = '';

以便以后您可以恢复它:

document.getElementById(id).onclick=document.getElementById(id).saved;

这在原始 onclick 属性包含一些动态计算值的情况下尤其有用。

于 2021-08-30T16:08:43.153 回答