IE:jQuery单击侦听器触发已禁用按钮的父级

时间:2017-08-17 14:38:56

标签: javascript jquery internet-explorer jquery-events

有没有办法防止在禁用的按钮的父级上触发jQuery .click()侦听器? 例如,在这种情况下:

<div>
  <button disabled="disabled">click me</button>
</div>
<script>
  // unfortunately this click handler is placed by 3rd party
  // library and I can't edit it. Just add another handlers or css
  $('div').on('click', function () {
    alert('div is still clickable, probable you use IE');
  });
</script>

在我的项目中,点击事件与第三方库一起放置,因此我无法启用/禁用自身或将绑定移动到按钮。

ADD :我找到了解决方案而没有禁用该按钮,但证明它已被禁用&#34; class,并添加事件监听器:

$('button').on('click', function (event) {
  if ($(this).hasClass('disabled')) {
    event.stopImmediatePropagation();
  }
});

但是禁用按钮怎么样?有没有办法解决它?

2 个答案:

答案 0 :(得分:0)

这可能适合你

$('button').not(':disabled').parent().on('click',function(){});

您可以删除第三方点击事件,并使用.off()unbind()

以这种方式在页面上重新绑定所有内容
$('div').unbind(); //or .off() depending on how the third-party set the handler
//then add your own click method after the unbinding.

答案 1 :(得分:0)

试试这个:

  $('div').on('click', function (event) {
        if ($(this).find('button').is(':disabled')) {
        return false;
    }
  });