June 8, 2010
to stop trigger in jquery
Question by AlexC
I have an AJAX call, which is doing this call every 5 seconds and when the call “succeed ” I have a trigger
success: function (msg) {
...
$('#test').trigger('click');
return false;
},
...
But i need to do this trigger just once , the first time, not every 5 second !
Can somebody suggest me how to stop this trigger, or maybe to use another stuff to trigger this “click “
Thanks!
Answer by RobertPitt
add a global variable outside the function to track the states
var trigger_triggered = false;
Somewhere in your ajax call
success: function (msg) {
...
if(trigger_triggered == false)
{
$('#test').trigger('click');
trigger_triggered = true; //set it executed here
}
return false;
},
Answer by Starx
Well, place the ajax call, in the $(document).ready(function() { });
it will only executes once your document is ready.
Or, when you do the ajax call, create a session flag to denote the script already being executed.
What I mean is
this is your ajax call page
<?
if(!isset($_SESSION['scriptflag']) or $_SESSION['scriftflag']==false) {
//Your action
$_SESSION['scriptflag'] = true;
}
?>
get the point