我有5个img标签,如。
<img id="test-btn" src="image/btn1.png" onmouseover="this.src='image/btn2.png'" onmousedown="this.src='image/btn1.png'" onmouseup="this.src='image/btn2.png'" onmouseout="this.src='image/btn1.png'" onclick="uponClickingTestBtn()" style="heignt:15px;width:30px;">
当我点击其中一个图片标签时,应禁用其他图像标签。我甚至不希望像onmouseover这样的事件发生在图像上。是否可以删除与元素关联的事件?我试过了
$('#test-btn').filter("input,textarea,select,button").prop('disabled',true);
和
$('#test-btn :input').attr('disabled', true);
但没有奏效。我该怎么做?我还想稍后启用这些img点击。
答案 0 :(得分:1)
与您的代码保持一致,您可以这样做:
$('#test-btn :input').attr('onmousedown', null);
$('#test-btn :input').attr('onmouseover', null);
$('#test-btn :input').attr('onclick', null);
$('#test-btn :input').attr('onmouseout', null);
$('#test-btn :input').attr('onmouseup', null);
然而,考虑不要放入内联事件,并使用jquery .on()女巫有一个函数off()来删除事件。
如果你仍然使用fisrt解决方案,你可以重新分配这样的事件:
$('#test-btn :input').attr('onmouseover', "this.src='image/btn2.png'");
...
答案 1 :(得分:0)
NULL函数绑定,它不再对点击做任何事情。确保我也为元素中的属性添加了删除。
var button = document.getElementById('test-btn');
button.onmouseover = null;
button.removeAttribute('onmouseover');
在jQuery中,您可以preventDefault
或返回false
。有时人们同时使用。如果你想在点击内部仍然执行操作,请记住最后返回false
,否则该功能将“中止”;
$('#test-btn').click(function(evt) {
evt.preventDefault();
return false;
});