[英]Call a function only once
我有3個div( #Mask #Intro #Container
),所以如果你點擊Mask,Intro會被隱藏並且容器會出現。 問題是我只想加載一次,不是每次刷新頁面或任何時候點擊菜單或鏈接等。
我怎樣才能做到這一點?
這是我現在使用的腳本:
$(document).ready(function(){
$("div#mask").click(function() {
$("div#intro").fadeToggle('slow');
$("div#container").fadeToggle('slow');
$("div#mask").css("z-index", "-99");
});
});
謝謝!
您可以嘗試使用簡單的計數器。
// count how many times click event is triggered
var eventsFired = 0;
$(document).ready(function(){
$("div#mask").click(function() {
if (eventsFired == 0) {
$("div#intro").fadeToggle('slow');
$("div#container").fadeToggle('slow');
$("div#mask").css("z-index", "-99");
eventsFired++; // <-- now equals 1, won't fire again until reload
}
});
});
要堅持這一點,您需要設置一個cookie 。 (例如$.cookie()
如果你使用那個插件)。
// example using $.cookie plugin
var eventsFired = ($.cookie('eventsFired') != null)
? $.cookie('eventsFired')
: 0;
$(document).ready(function(){
$("div#mask").click(function() {
if (eventsFired == 0) {
$("div#intro").fadeToggle('slow');
$("div#container").fadeToggle('slow');
$("div#mask").css("z-index", "-99");
eventsFired++; // <-- now equals 1, won't fire again until reload
$.cookie('eventsFired', eventsFired);
}
});
});
要在以后刪除cookie:
$.cookie('eventsFired', null);
一旦被調用,只需指向一個空函數。
var myFunc = function(){
myFunc = function(){}; // kill it
console.log('Done once!'); // your stuff here
};
網頁是無狀態的 ,因為它們在頁面刷新之間不保持狀態。 當你重新加載頁面時,它不知道過去發生了什么。
餅干救援! 您可以使用Javascript (並且jQuery有一些很好的插件使其更容易)在客戶端的瀏覽器上存儲變量。 單擊蒙版時存儲cookie,以便在下次加載頁面時它永遠不會顯示。
這段代碼將完美適合您,它是jquery提供的標准方法,用於綁定您只想執行一次的事件
$(document).ready(function(){
$("div#mask").one('click', function() {
$("div#intro").fadeToggle('slow');
$("div#container").fadeToggle('slow');
$("div#mask").css("z-index", "-99");
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.