只调用函数一次
Call a function only once
我有3div (#Mask #Intro #Container
),所以如果你点击蒙版,介绍被隐藏,容器出现。问题是,我只想加载这个只一次,而不是每次我刷新页面或每次我点击菜单或链接,等。
我该怎么做?
这是我现在使用的脚本:
$(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
};
Web页面是无状态的,因为它们在页面刷新之间不保持状态。当你重新加载页面时,它不知道过去发生了什么。
饼干来拯救!您可以使用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");
});
});
相关文章:
- 如何用JavaScriptEasy的方式一次调用大量restful服务
- 有没有一种方法可以在一次调用中修改每个jquery对象的特定属性
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- JS - 正则表达式替换在一次调用中发生多次,如何让它运行一次
- 进度条函数在一次调用后中断
- 如何使用上一次调用的数据进行第二次 JS .post 调用
- 如何通过一次调用 Facebook Graph API 来获取多个相册图片 URL
- 创建不会中断上一次调用的重复动画
- 如何只需一次调用就可以将对象数组保存到mongoose DB中
- 为什么函数只运行一次?在上一次调用完成后,尝试使用计数器函数多次运行函数
- 如何在android中一次调用多个java脚本函数来加载webview
- 下划线throttle+确保最后一次调用
- 如何重复调用一个函数并等待下一次调用之前完成
- 如何从函数的最后一次调用中判断它是同步调用还是异步调用?
- 我有这三个函数,该怎么做呢在onload时一个接一个地调用它们在refresh时一次调用一个函数
- 函数只适用于最后一次调用
- 一次调用两个函数
- 在Symfony 2上使用Assetic组合文件,只对所有CSS文件进行一次调用
- 烬:每5秒轮询一次api,但要在获得前一次调用的响应之后
- 一次调用多个ajax函数,PHP, ajax