Javascript jquery触发器的效率
以下是指向我的代码的链接: 我很想知道可以做些什么改进,使它更小、更高效Javascript jquery触发器的效率,javascript,jquery,Javascript,Jquery,以下是指向我的代码的链接: 我很想知道可以做些什么改进,使它更小、更高效 非常感谢您的帮助。对我来说写得很好,干得好!我发现唯一可以改进的地方是第17行,更改: .html(" toggler ") 致: 然后用CSS在左右两侧垫上.gm toggler 使用.html依赖于.innerHTML,并且比标准的Javascript文本插入速度慢(但它会将作为文本写入,因此填充更适合于分隔表示) 另外,在前面的一行中,您可以只说$(“”),jQuery将完全
非常感谢您的帮助。对我来说写得很好,干得好!我发现唯一可以改进的地方是第17行,更改:
.html(" toggler ")
致:
然后用CSS在左右两侧垫上.gm toggler
使用.html
依赖于.innerHTML
,并且比标准的Javascript文本插入速度慢(但它会将
作为文本写入,因此填充更适合于分隔表示)
另外,在前面的一行中,您可以只说
$(“”)
,jQuery将完全按照您所写的方式构造它。只是更具可读性。如果您正在寻找更简洁的代码,您可以进行许多改进。我将在下面列出您可以保存代码的主要区域(当然,对于等效功能)
主要内容如下:
$($li).children('a').after(
$(document.createElement('span'))
.html(" toggler ")
.addClass("gm-toggler")
.hide()
);
可以缩短为
$li.children('a').after(
$('<span>', { html: " toggler ", 'class': "gm-toggler"}).hide()
);
$li.hover(function(){
$('.gm-toggler', this).toggle();
});
可以缩短为
$li.children('a').after(
$('<span>', { html: " toggler ", 'class': "gm-toggler"}).hide()
);
$li.hover(function(){
$('.gm-toggler', this).toggle();
});
这个
$li.hover(function() {
$('.gm-toggler', this).show();
}, function(){
$('.gm-toggler', this).hide();
});
if($(this).parent('li').hasClass('active')){
// ... remove its active class ...
$(this).parent('li').removeClass('active');
} else {
// ... otherwise give it an active class.
$(this).parent('li').addClass('active');
}
可以缩短为
$(this).parent('li').toggleClass('active');
也许最好问问你对哪些部分有疑问,我使用的方法的相关文档可以在这里找到:,。谢谢你,尼克。这正是我想要的。我唯一的问题是,您创建span的方法是否比document.createElement()更有效。@Greg-J-两种方法都有很小的区别,只是一种更简洁的语法方法……如果您创建了很多span,那么由于创建的元素被缓存和克隆,因此它会变得更快,如果您这样做了
$('toggler')
这会快得多,因为您可以从缓存中获得更多好处。