使用if / else语句与两个不同的选择器调用时的jquery性能

时间:2013-05-06 01:31:54

标签: jquery performance dom if-statement comparison

我很好奇以下哪个(理论上)在DOM效率方面更好。我意识到两个片段本身可能更简洁,但我真的想知道何时何地使用和if / else与两个不同的jquery调用。

Snippet 1

$('.ele').click(function() {
  if ($(this).hasClass('force')) {
    //use it
  } else {
    //hide
  }
});

Snippet 2

$('.ele.force').click(function() {
  //use it
});

$('.ele.ring').click(function() {
  //hide
});

1 个答案:

答案 0 :(得分:0)

避免条件语句并使用函数总是好的。如果我们不知道事件触发时的状态,我们最终可能会在函数中使用条件。

但我们知道如果element(.ele).force类,则行为为//use it,否则为//hide。所以最好有两个独立的事件处理程序。

注意:使用.on()/.live()进行此类绑定非常安全,因为该元素可能会更改其状态。