Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery中停止触发器_Jquery_Triggers - Fatal编程技术网

在jquery中停止触发器

在jquery中停止触发器,jquery,triggers,Jquery,Triggers,我有一个AJAX调用,每5秒调用一次,当调用“成功”时,我有一个触发器 success: function (msg) { ... $('#test').trigger('click'); return false; }, ... 但是我只需要触发一次,第一次,不是每5秒钟 有人能建议我如何停止这个触发器,或者使用其他东西来触发这个“点击”吗 谢谢 那么,将ajax调用放在$(document.ready(function(){}

我有一个AJAX调用,每5秒调用一次,当调用“成功”时,我有一个触发器

 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>