在Jquery取消绑定时遇到一些麻烦

时间:2011-04-22 17:20:51

标签: jquery click unbind

大家好,我在一个全站包含文件中实现了smoothscroller脚本。但我想在主页上禁用它。 (Smoothscroller基本上使用#anchors使浏览器缓慢平滑地滚动到锚点部分。没有跳跃。)

这是踢球者。我不想禁用所有点击,只有关于smoothscroller的点击。

smoothscroller代码如下所示:

$(function(){
  $('a[href*=#]').click(function() {

现在,我已经尝试在页面上的smoothscroller调用之后添加以下内容:

$('a[href*=#]').unbind('click');

但是这会禁用该链接上的所有点击。 (他们正在使用一个使用点击操作的jquery标签系统。

我还尝试为click函数指定一个变量:

var narf = $('a[href*=#]').click(function() {

然后用这个解开......

$('a[href*=#]').unbind('click',narf);

但它似乎没有效果!任何人都可以对此有所了解吗?我错过了什么明显的错误?

1 个答案:

答案 0 :(得分:2)

您可以使用事件命名空间:

http://docs.jquery.com/Namespaced_Events

这将允许您选择要解除绑定的特定事件处理程序,如此...

$('a[href*=#]').bind('click.thisone', function(){
    // Wacky stuff happens
}).bind('click.thistwo', function(){
    // Crazy stuff happens
}).bind('click.thisthree', function(){
    // Weird stuff happens
});

// Only one is unbound
$('a[href*=#]').unbind('click.thisone');