在jquery中停止触发器
我有一个AJAX调用,每5秒调用一次,当调用“成功”时,我有一个触发器在jquery中停止触发器,jquery,triggers,Jquery,Triggers,我有一个AJAX调用,每5秒调用一次,当调用“成功”时,我有一个触发器 success: function (msg) { ... $('#test').trigger('click'); return false; }, ... 但是我只需要触发一次,第一次,不是每5秒钟 有人能建议我如何停止这个触发器,或者使用其他东西来触发这个“点击”吗 谢谢 那么,将ajax调用放在$(document.ready(function(){}
success: function (msg) {
...
$('#test').trigger('click');
return false;
},
...
但是我只需要触发一次,第一次,不是每5秒钟
有人能建议我如何停止这个触发器,或者使用其他东西来触发这个“点击”吗
谢谢 那么,将ajax调用放在
$(document.ready(function(){})中代码>它仅在文档准备就绪后执行
或者,在执行ajax调用时,创建一个会话标志来表示已经执行的脚本
我的意思是
这是您的ajax调用页面
<?
if(!isset($_SESSION['scriptflag']) or $_SESSION['scriftflag']==false) {
//Your action
$_SESSION['scriptflag'] = true;
}
?>
获取点设置一个标志,告知您以前是否执行过此触发。如果有,则不要调用click事件
您还可以在执行触发器后,从#test中删除click事件,以便在调用trigger(“click”)时不会发生任何事情
还是我遗漏了问题的要点?在函数之外添加一个全局变量来跟踪状态
var trigger_triggered = false;
在ajax调用中的某个地方
success: function (msg) {
...
if(trigger_triggered == false)
{
$('#test').trigger('click');
trigger_triggered = true; //set it executed here
}
return false;
},
jQuery有一个内置的事件方法,该方法只应触发一次:
$(“#测试”).one('click',function(){
//您的常规单击功能
//你只想跑一次
//例如:
警报(“触发事件”);
});
$('#test')。触发器('click');//“已触发事件”
$('#test')。触发器('click');//
如果您发布整个代码,包括每5秒运行代码的函数,我可以更好地帮助您。如果您发布整个代码,包括每5秒运行代码的函数,我可以更好地帮助您。其他选项正在使用.data选项。if($('#test').data('triggered'))类型检查。我从没想过,傻我。。根据天气情况,元素测试将通过ajax进行更新,然后必须进入实时模式。这是正确的答案。没有理由引入状态变量。
$('#test').one('click', function() {
// your regular click function
// which you only want to run once
// for example:
alert('event fired');
});
$('#test').trigger('click'); // "event fired"
$('#test').trigger('click'); // <nothing>