jquery .on()在事件发生之前执行函数

时间:2013-05-07 20:18:21

标签: javascript jquery function namespaces

var MobileMenu = {
    menu: function () {
        $('#navigation').toggleClass("open");
        $('body').toggleClass("push");
    }
}    

$(function(){
    $(".icon-menu").on("click", MobileMenu.menu());
});

出于某种原因,这会立即在正在加载的页面上触发MobileMenu.menu,而“.icon-menu”似乎不再有事件绑定。除了加载jquery之外,没有其他javascript。

2 个答案:

答案 0 :(得分:5)

MobileMenu.menu()会调用该函数,您只需要MobileMenu.menu

$(function(){
    $(".icon-menu").on("click", MobileMenu.menu);
});

答案 1 :(得分:1)

.on方法没有执行它。你在()

如果您需要保留MobileMenu上下文,请使用匿名函数。

$(".icon-menu").on("click", function(e) {
    MobileMenu.menu(e)
});

或使用$.proxy()

$(".icon-menu").on("click", $.proxy(MobileMenu, "menu"));