0

我有 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 点击。

4

2 回答 2

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() 功能来删除事件。

如果您仍然使用第一个解决方案,您可以重新分配一个事件,如下所示:

$('#test-btn :input').attr('onmouseover', "this.src='image/btn2.png'");
...
于 2013-04-02T08:53:07.740 回答
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;
});
于 2013-04-02T08:49:09.303 回答