0

好的,所以我想单击一个项目,然后让该项目变得不可点击,并且不执行附加到它的 jQuery。我目前正在使用这个

$(clicked_id).prop('disabled', true);

然而,这是行不通的。

任何帮助深表感谢!

编辑:

这是 HTML:

<img src="imgs/card.jpg" id="card0" name="card0"  onclick="getCard(this.id); ">
4

3 回答 3

3

disabled仅用于禁用输入元素(并且它不会改变对象的可点击性——只是不执行默认动画)。

要使其从对象中删除单击事件,请使用.off()

 $(clicked_id).off('click')

但这仅在通过 jquery 添加 onclick 时才有效

相反,您可以这样做:

$(clicked_id)[0].onclick=false
于 2013-02-17T17:13:56.537 回答
0

还有另一种解决方案:

function getCard(objId){ 
  if( !($('#'+objId).attr('used') == '1') )
  {
    alert('Click is working for '+objId);
    // do something
    $('#'+objId).attr('used', '1');
  } 
}

这是一个工作示例:

http://jsfiddle.net/HqHut/

于 2013-02-17T17:54:24.170 回答
0

由于您的处理程序是作为属性分配的,因此您可以取消该事件处理程序的属性。

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;
于 2013-02-17T17:16:39.547 回答