结合jquery提高效率

时间:2012-11-09 14:32:07

标签: jquery

尝试在我正在关注的网站上压缩一些编码,并且想知道是否有更有效的方式编写以下编码,因为我意识到信息增加了一倍。

$("span.menu-link-title.active-components").mouseover(function(){$('#active-components-image').css('display', 'block');});
$("span.menu-link-title.active-components").mouseleave(function(){$('#active-components-image').css('display', 'none');});
$("span.menu-link-title.adaptors").mouseover(function(){$('#adaptors-image').css('display', 'block');});
$("span.menu-link-title.adaptors").mouseleave(function(){$('#adaptors-image').css('display', 'none');});

4 个答案:

答案 0 :(得分:4)

您可以使用hovertoggle方法:

$("span.menu-link-title.adaptors").hover(function(){
   $('#adaptors-image').toggle();
});

hovermouseenter not mouseover )和mouseleave事件的简写,它还接受2个函数。您也可以缓存对象。

var $adapt = $('#adaptors-image');
$("span.menu-link-title.adaptors").hover(function(){
    $adap.show(); // mouseenter
}, function(){
    $adap.hide(); // mouseleave
});

答案 1 :(得分:2)

这可能更精益:

$("span.menu-link-title.active-components").hover(function() {
    $('#active-components-image').toggle();
});
$("span.menu-link-title.adaptors").hover(function() {
    $('#adaptors-image').toggle();
});​

答案 2 :(得分:0)

大多数jQuery方法返回对象,允许您链接事件:

$("span.menu-link-title.active-components").mouseover(function(){
    $('#active-components-image').css('display', 'block');
}).mouseleave(function(){
    $('#active-components-image').css('display', 'none');
});

$("span.menu-link-title.adaptors").mouseover(function(){
    $('#adaptors-image').css('display', 'block');
}).mouseleave(function(){
    $('#adaptors-image').css('display', 'none');
});

只要你愿意,你就可以创建这样的链。

有关详细信息,请参阅this article

答案 3 :(得分:0)

利用链接和结束方法,您可以写为

$("span.menu-link-title").find(".adaptors").hover(function(){
   $('#adaptors-image').toggle();
}).end().find(".active-components").hover(function(){
   $('#active-components-image').toggle();  
});