好的,所以我想单击一个项目,然后让该项目变得不可点击,并且不执行附加到它的 jQuery。我目前正在使用这个
$(clicked_id).prop('disabled', true);
然而,这是行不通的。
任何帮助深表感谢!
编辑:
这是 HTML:
<img src="imgs/card.jpg" id="card0" name="card0" onclick="getCard(this.id); ">
好的,所以我想单击一个项目,然后让该项目变得不可点击,并且不执行附加到它的 jQuery。我目前正在使用这个
$(clicked_id).prop('disabled', true);
然而,这是行不通的。
任何帮助深表感谢!
编辑:
这是 HTML:
<img src="imgs/card.jpg" id="card0" name="card0" onclick="getCard(this.id); ">
disabled
仅用于禁用输入元素(并且它不会改变对象的可点击性——只是不执行默认动画)。
要使其从对象中删除单击事件,请使用.off()
$(clicked_id).off('click')
但这仅在通过 jquery 添加 onclick 时才有效
相反,您可以这样做:
$(clicked_id)[0].onclick=false
还有另一种解决方案:
function getCard(objId){
if( !($('#'+objId).attr('used') == '1') )
{
alert('Click is working for '+objId);
// do something
$('#'+objId).attr('used', '1');
}
}
这是一个工作示例:
由于您的处理程序是作为属性分配的,因此您可以取消该事件处理程序的属性。
document.getElementById(clicked_id).onclick = null;
#
只需确保您在 ID 上没有前导。
或者我们这样的jQuery:
$(clicked_id).prop("onclick", null);
或者您可以传递元素本身而不是传递 ID。
<img src="imgs/card.jpg" id="card0" name="card0" onclick="getCard(this); ">
然后更改您的函数,使其接收元素而不是元素的 ID。完成此操作后,您可以直接访问该元素。
elem.onclick = null;