jQuery 优化

标签 jquery

这样做有什么区别吗:

$(".topHorzNavLink").click(function() {

    var theHoverContainer = $("#hoverContainer");

    var thisHorzLink = $(this).attr('linkItem');

    if (thisHorzLink == "link2") {
        if ($("#hoverContainer").is(":visible") == true) { 
            $("#hoverContainer").slideUp('slow');
        } else {                
            $("#hoverContainer").slideDown('slow');
        }
    }

});

或者这个:

$(".topHorzNavLink").click(function() {

    var theHoverContainer = $("#hoverContainer");

    var thisHorzLink = $(this).attr('linkItem');

    if (thisHorzLink == "link2") {
        if (theHoverContainer.is(":visible") == true) { 
            theHoverContainer.slideUp('slow');
        } else {                
            theHoverContainer.slideDown('slow');
        }
    }

});

最佳答案

你的第二种方法更高效,因为它只运行一次选择器操作 $("#hoverContainer") 并一遍又一遍地使用相同的 jQuery 对象,而不是运行相同的选择器操作三次每次构造三个新的 jQuery 对象。

为了紧凑和高效,您可以这样做:

$(".topHorzNavLink").click(function() {
    if ($(this).attr('linkItem') == "link2") {
        $("#hoverContainer").slideToggle('slow');
    }
});

或者,如果 linkItem 属性未动态分配/更改,您可以将其烘焙到选择器中,如下所示:

$(".topHorzNavLink[linkItem='link2']").click(function() {
    $("#hoverContainer").slideToggle('slow');
});

关于jQuery 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127113/

相关文章:

javascript - 数组中的 jquery 对象未定义

javascript - 使用 ul 和 li 标签选择框

javascript - 为什么“jquery animate callBack 函数在其他函数中不起作用”

jquery - 使用命名空间调用函数

javascript - InnerHTML 不工作

javascript - 根据背景图像删除元素

java - datepicker不要在jsp中打开日历

jquery - 如何在引导模式的html5视频中点击自动播放?

javascript - 如何遍历一系列问题并将其存储在一系列用户输入中?

javascript - 使用 fn.extend 扩展 jQuery 的基础知识 - 访问成员