在jQuery中禁用元素

时间:2013-02-17 17:08:24

标签: javascript jquery

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

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

然而,这不起作用。

非常感谢任何帮助!

编辑:

这是HTML:

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

3 个答案:

答案 0 :(得分:3)

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

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

 $(clicked_id).off('click')

但这只有在通过jquery

添加onclick时才有效

相反,您可以这样做:

$(clicked_id)[0].onclick=false

答案 1 :(得分: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;

答案 2 :(得分: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/