2016-09-15 59 views
-4

我有一個自定義jQuery函數。每5秒運行一次。如何停止正在運行的自定義jQuery函數?

(function($) { 
     $.fn.mycustomfunction = function() { 
      interval = setInterval(function() { 
       console.log("I am running every 5 seconds"); 
      }, 5000); 
     } 
     return this; 
    }; 
})(jQuery); 

$("#container").mycustomfunction(); 

我有一個

clearInterval(interval); 

停下來,但我也想完全停止功能。我怎樣才能做到這一點 ?

+1

這正是'clearInterval'一樣。它停止該函數在該間隔執行。你看到你想改正的行爲是什麼?什麼是實際問題? (還要注意,所顯示的代碼有語法錯誤,所以如果甚至執行它,行爲是不確定的。) – David

+1

您可以在任何時候重新聲明一個函數'$ .fn.mycustomfunction = function(){return; }'但是在你的代碼中,只有你函數中的代碼會被再次執行。你的間隔是一個全局變量,所以清除你的函數將不會再執行。這是,你的函數目前已完全停止 – kosmos

+0

你有語法錯誤,當你想要停止功能 –

回答

1

功能添加到this對象將被連接到您的物體和簡單和天真的解決方案將遵循:

(function($) { 
    $.fn.mycustomfunction = function() { 
     interval = setInterval(function() { 
      console.log("I am running every 5 seconds"); 
     }, 1000); 

     this.stop= function(){ 
     clearInterval(interval); 
     } 
     // another function 
     this.alert = function(msg){ 
      alert(msg) 
     } 
    return this; 
}; 
})(jQuery); 

停止使用

var feature = $("#container").mycustomfunction(); 
feature.stop(); 
相關問題