2013-04-13 39 views
0

我正在玩一个名为flip的jquery插件。我想循环一系列的行为。我不是,如果这是最有效的方式来做到这一点。我怀疑我是在每次迭代中添加一个可能影响性能的侦听器。jquery - 添加监听器和性能

裁判:http://lab.smashup.it/flip/

$(document).ready(function() { 

     function myFunction(container, title,color){    
      var $this = $("#"+container); 
      $this.flip({ 
       direction:'tb', 
       content: title, 
       color: color, 
      }) 
     } 

      var n=0; 
      var doSomething = function(){     
      if (n == 4) {n=1;} else {n++;}    

       switch(n) 
      { 
       case 1: 
       myFunction("flipbox1","title1", "#1B9772"); 
       break; 

       ... 

       default: 
       } 
      } 

      setInterval(doSomething, 1000); 

    });  
+0

“我怀疑我在添加一个监听器”:是什么让你觉得呢? – acdcjunior

+0

你的问题是什么? – excentris

+0

实际上它是一个函数,但我注意到几分钟后性能下降,浏览器响应性降低。 –

回答

1

不要担心性能,这样的事情应该是没有什么大不了的。回调实际上内置在这个jQuery插件中,所以你不必编写自己的。我试着修改你的代码,就像这样:

$(document).ready(function() { 
    var title = "Hello!"; 
    var color = "orange"; 

    $("#myDiv").flip({ 
     direction:'tb', 
     content: title, 
     color: color, 
     onBefore: function() { 
      alert("Flip started"); 
     }, 
     onEnd: function() { 
      alert("Flip ended"); 
     } 
    }); 
}); 
+0

你说我可以使用onEnd函数而不是添加我自己的计时器 –

+0

正是!回调内置到这个插件中,不需要编写你自己的。如果我的回答对你有帮助,那么就把它标记为正确,并让它升值,以便其他人也可以从中获得帮助。 – cereallarceny