首先从插件中取消绑定旧点击功能,然后绑定新的

时间:2016-09-13 20:51:46

标签: javascript jquery

我有一个带滑块功能的网站,其中有下一个按钮。如果没有其他幻灯片,我想解除之前点击功能的解除绑定,并使用点击按钮执行其他操作。

这是js

jQuery(document).bind('DOMSubtreeModified', function() {
  var button = jQuery("._disabled").length;
  if (button) {
    jQuery( "._next" ).off("click");
    jQuery( "._disabled" ).on("click", handler);
  }
  var handler = function (e) {
    e.preventDefault();
    jQuery('.suggested').show();
    jQuery('.theiaPostSlider_slides').html('');
    jQuery('.theiaPostSlider_slides').append(jQuery('.suggested'));
    jQuery('._buttons').hide();    
  }
});

按钮的HTML在这里:

<a rel="next" href="#" class="_button _next _disabled">
  <span class="_1">Next</span>
  <span class="_2"><span aria-hidden="true" class="tps-icon-chevron-circle-right"></span></span>
  <span class="_3"></span>
</a>

这是网站:link 当你单击一下Next按钮它正常工作,然后当它在最后一张幻灯片上时,它应解除绑定然后绑定新函数,但它只解除绑定。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您使用.on.off的方式可以用于.bind.unbind

如果您的jQuery版本小于3,您可以将其更改为:

    jQuery( "._next" ).unbind("click");
    jQuery( "._disabled" ).bind("click", handler);

否则,您可以使用正确的格式保留.on.off。像这样:

    jQuery( 'body' ).off("click", "._next");
    jQuery( 'body' ).on("click", "._disabled", handler);

更多信息:

http://api.jquery.com/unbind/

http://api.jquery.com/off/