2013-04-13 66 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