Jquery取消绑定特定处理程序而不是所有单击

时间:2014-12-15 10:35:02

标签: jquery unbind

我有一个菜单,当最大宽度为969px时滑动Toggles。当点击导航链接关闭(SlideUp)菜单时,还有一个功能。我不知道视口是什么时的这种行为> 969px。

这是我目前正在使用的jquery,但是我想找到一个替代解除'nav li a'单击的替代方法,因为它会禁用我的ScrollTo脚本。有没有办法专门解除前一个功能而不是所有点击?我能说出一个名字吗?

$(window).resize(function(){
if (window.matchMedia('(max-width: 969px)').matches)
{
    $("#MenuToggle").unbind( "click" );
    $('#jqmenu').hide()

    $('#MenuToggle').click(function () {
        $(this).toggleClass('cross'),
        $('#jqmenu').slideToggle('slow') 
    });

    $('nav li a').click(function() {
        $('#MenuToggle').toggleClass('cross'),
        $('#jqmenu').slideUp('slow') 

    });

    }

    else{
        $('#jqmenu').show()
        $("nav li a").unbind( "click" );
    }
}).resize();

1 个答案:

答案 0 :(得分:1)

var foo = function() {
  // Code to handle some kind of event
};
// ... Now foo will be called when paragraphs are clicked 
$( "p" ).bind( "click", foo );

// ... foo will no longer be called. 
$( "p" ).unbind( "click", foo );