javascript - 更高效地编写 jQuery

标签 javascript jquery

我有两个类似的函数通过页面上的 handle 执行响应式菜单切换,请参阅代码:

//responsive main navigation
    $(function() {
        var pull        = $('#pull');
            menu        = $('.main-nav ul');
            menuHeight  = menu.height();

        $(pull).on('click', function(e) {
            e.preventDefault();
            menu.slideToggle('fast');
        });
    });

    //responsive blog navigation
    $(function() {
        var toggle        = $('#toggle-handle');
            sidebar        = $('.blog-sidebar-wrap');
            sidebarHeight  = sidebar.height();

        $(toggle).on('click', function(e) {
            e.preventDefault();
            sidebar.slideToggle('fast');
        });
    });

我的问题是我怎样才能写这个,这样我就不会重复相同类型的过程(函数)。我是否设置单个函数并传入参数?对于 jQuery/Javascript 初学者,这里的帮助非常感谢!

最佳答案

尝试

//a function that creates a slide based menu
function slideMenu(ctrl, target){
    ctrl.on('click', function(e) {
        e.preventDefault();
        target.slideToggle('fast');
    });
}

//responsive main navigation
$(function() {
    var pull        = $('#pull');
    menu        = $('.main-nav ul');
    menuHeight  = menu.height();

    slideMenu(pull, menu)
});

//responsive blog navigation
$(function() {
    var toggle        = $('#toggle-handle');
    sidebar        = $('.blog-sidebar-wrap');
    sidebarHeight  = sidebar.height();

    slideMenu(toggle, sidebar)
});

关于javascript - 更高效地编写 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362062/

相关文章:

javascript - 如何在 jQuery 中的滚动上添加事件类?

javascript - 我正在尝试在文本中插入一个 <br/>

jquery - 使用 JQuery 使用 CDATA 解析 XML

javascript - 使用 jquery 反转名字和姓氏

jquery-ui - 如何以编程方式调用 jQuery UI Draggable 拖动启动?

javascript - 如何验证我的 jQuery 脚本?

javascript - Internet Explorer 中的回流/布局非常慢

jquery - jQuery If 语句的三元运算符

javascript - 检测按键上的字符

javascript - 链接缺少斜杠的连接字符串