0

我有这个功能 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(),但这些不适用于主题标签 if 语句。

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

4

2 回答 2

2

查看 jQuery bind()unbind()

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

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

$(".side-nav ul li a").unbind('click');
于 2012-12-03T22:06:05.603 回答
0

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

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

引用函数时,只需键入函数名称“ sideNav”,如果添加括号,如“ sideNav()”,则立即执行该函数并传回该函数的值,除非返回其他内容,否则默认值为“ undefined”,并且在添加括号时,您的文档就绪功能根本不起作用。

$(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');
    });
});
于 2012-12-03T22:09:12.043 回答