使用jquery解除绑定功能

时间:2012-12-03 22:04:17

标签: jquery if-statement unbind

我有这个函数sideNav,它是由点击子项目

触发的
$(".side-nav ul li a").click(function(event) {
    $(document).ready(sideNav());
});

if(window.location.hash) {
    $(document).ready(sideNav());
}

我试图在单击某个元素时取消绑定sideNav

$(".side-nav .page-header h1 span").click(function(event) {

}).unbind('ready',sideNav);

我尝试过使用.live()和.die(),但这些不会对hashtag if语句起作用。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:2)

查看jQuery bind()unbind()

要改变你的点击(),你可以这样做:

$(".side-nav ul li a").bind('click', function(event) {
    $(document).ready(sideNav());
});

$(".side-nav ul li a").unbind('click');

答案 1 :(得分:0)

on()off()是附加和分离事件处理程序的首选方式。

此外,将文件中的代码包装好以确保在执行代码时已加载DOM,不要将每个函数都包装在自己的文档就绪函数中。

当您引用某个函数时,只键入函数名“sideNav”,如果添加括号,如“sideNav()”,则立即执行该函数并传回该函数的值函数和默认值,除非返回其他内容是“未定义”,并且在添加括号时,您的文档就绪函数根本不起作用。

$(document).ready(function() {
    $(".side-nav ul li a").on('click', sideNav);

    $(".side-nav .page-header h1 span").on('click', function() {
        $(".side-nav ul li a").off('click');
    });
});