2013-05-07 5 views
0
var MobileMenu = { 
    menu: function() { 
     $('#navigation').toggleClass("open"); 
     $('body').toggleClass("push"); 
    } 
}  

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

По какой-то причине это немедленно приводит к срабатыванию MobileMenu.menu на загружаемой странице, а «.icon-menu» больше не имеет привязки к событию. Нет другого javascript, кроме загружаемого jquery.jQuery .on() выполнение функции до возникновения события

+0

Вы не являются обязательными для обработчика, а не связывать возвращение 'MobileMenu.menu()', как вы вызываете саму функцию при связывании. –

ответ

5

MobileMenu.menu() будет вызывать функцию, Вам необходимо MobileMenu.menu только

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

Метод .on не выполняет его. Вы находитесь с ().

Используйте анонимную функцию, если вам нужно сохранить контекст MobileMenu.

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

Или используйте $.proxy()

$(".icon-menu").on("click", $.proxy(MobileMenu, "menu")); 
Смежные вопросы