2012-10-16 22 views
2

我是Zepto的新手,我正在尝试做一些非常简单的事情,但似乎我不能以任何方式尝试。我试图绑定到的Zepto一个click事件的功能,但功能得到即使没有触发事件执行...Zepto中的活动

这是我的js文件的内容:

$(document).ready(function() { 

    if (!$('.page').hasClass('.current')) { 
     $('#home').addClass('current'); 
     $('.page .content').css('display', 'none'); 
    $('#home .content').css('display', 'block'); 
} 

$('#menu-trigger').on('click', switchPage('search', 'fade')); 

function switchPage(pageID,switchType) { 
    oldPageID = '#' + $('.page.current').attr('id'); 
    newPageID = '#' + pageID; 
    if(switchType =='fade') { // Fade Effect 
     // $(oldPageID).hide(); 
     alert('done'); 
    } 
} 
}); 

的问题在于,只要我重新加载html,函数就会执行,不会等待'click'事件。

回答

0

所不同的是指定之间哪个对象将被用作回调,以及具有该功能的实际执行,并指定返回值作为回调。

您的代码应阅读:

$('#menu-trigger').on('click', switchPage); 
function switchPage(pageID,switchType) { 
    oldPageID = '#' + $('.page.current').attr('id'); 
    newPageID = '#' + pageID; 
    if(switchType =='fade') { // Fade Effect 
     // $(oldPageID).hide(); 
     alert('done'); 
    } 
} 
0

当你刚使用switchPage('search', 'fade') JS演示函数并试图设置它的返回值时,就用这个来代替。

$('#menu-trigger').on('click', function() { switchPage('search', 'fade') }); 

如果使用与出参数的函数可以使用

$('#menu-trigger').on('click', switchPage); 
+0

谢谢你这么多有用的答复!我永远不会猜到:) – bitstream