【问题标题】:Events in ZeptoZepto 活动
【发布时间】:2012-10-06 16:33:30
【问题描述】:

我是 Zepto 的新手,我正在尝试做一些非常简单的事情,但我似乎无法尝试任何方式。我正在尝试将函数绑定到 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 后立即执行,而不是等待“点击”事件。

【问题讨论】:

    标签: javascript zepto


    【解决方案1】:

    当你只使用switchPage('search', 'fade') JS 评估函数并尝试设置它的返回值时,请改用它。

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

    如果你使用没有参数的函数,你可以使用

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

    【讨论】:

    • 非常感谢您的有用回复!我永远不会猜到:)
    【解决方案2】:

    区别在于指定哪个对象将用作回调,以及让函数实际执行并将返回值指定为回调。

    您的代码应为:

    $('#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');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-09
      • 2012-02-16
      • 2013-03-06
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2012-02-02
      • 2014-10-27
      相关资源
      最近更新 更多