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: "&nbsp; toggler &nbsp;", 'class': "gm-toggler"}).hide()
);
$li.hover(function(){
  $('.gm-toggler', this).toggle();
});
可以缩短为

$li.children('a').after(
  $('<span>', { html: "&nbsp; toggler &nbsp;", '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')
这会快得多,因为您可以从缓存中获得更多好处。