Jquery函数同时显示不同的alerts setInterval
Jquery function display different alerts at the same time setInterval
我有这个功能,它每 2 秒显示一个特定值的警报。
jQuery.fn.ShowAlert = function(value){
var value=value;
setInterval( function(){alert(value);},2000)
}
$("#show1").on("click", function(){ $(document).ShowAlert(4);});
$("#show2").on("click", function(){ $(document).ShowAlert(3);});
$("#show3").on("click", function(){ $(document).ShowAlert(2);});
$(document).ShowAlert(4); /*by default the page start alerting the number 4*/
因此,每当我单击锚点时,页面就会开始每 2 秒弹出一次所选值的警报。
<a id=show1>Show value 4</a>
<a id=show2>Show value 3</a>
<a id=show3>Show value 2</a>
问题是,一旦我单击多个锚点,该函数就会开始弹出不同的警报,显示值 4 & 3 或 4 & 2 或 4,3 & 2 等
问题是我该如何阻止这种行为?我想要的是单击一个锚点,该函数仅显示所选数字的警报。 https://jsfiddle.net/vyucptve/
setInterval 函数returns 一个引用该间隔的数字。您可以通过调用 clearInterval 并传入对前一个间隔的引用来停止间隔。
您需要使用 clearInterval
(MDN) 函数清除间隔,以便在您单击不同的 link 时重新开始。像这样的东西可以解决问题。
var myInterval;
jQuery.fn.ShowAlert = function(value){
var value = value;
if(myInterval) {
clearInterval(myInterval);
myInterval = null;
}
myInterval = setInterval( function(){alert(value);},2000)
}
试试这个:
$(document).ready(function() {
jQuery.fn.ShowAlert = function(value){
var value=value;
var timerId = setInterval( function()
{
alert(value);
value = value-1;
if(value<1) {
clearInterval(timerId);
}
},2000)
}
$(document).ShowAlert(4);
});
</script>
<a id="show1">Show value 4</a>
<a id="show2">Show value 3</a>
<a id="show3">Show value 2</a>
我有这个功能,它每 2 秒显示一个特定值的警报。
jQuery.fn.ShowAlert = function(value){
var value=value;
setInterval( function(){alert(value);},2000)
}
$("#show1").on("click", function(){ $(document).ShowAlert(4);});
$("#show2").on("click", function(){ $(document).ShowAlert(3);});
$("#show3").on("click", function(){ $(document).ShowAlert(2);});
$(document).ShowAlert(4); /*by default the page start alerting the number 4*/
因此,每当我单击锚点时,页面就会开始每 2 秒弹出一次所选值的警报。
<a id=show1>Show value 4</a>
<a id=show2>Show value 3</a>
<a id=show3>Show value 2</a>
问题是,一旦我单击多个锚点,该函数就会开始弹出不同的警报,显示值 4 & 3 或 4 & 2 或 4,3 & 2 等
问题是我该如何阻止这种行为?我想要的是单击一个锚点,该函数仅显示所选数字的警报。 https://jsfiddle.net/vyucptve/
setInterval 函数returns 一个引用该间隔的数字。您可以通过调用 clearInterval 并传入对前一个间隔的引用来停止间隔。
您需要使用 clearInterval
(MDN) 函数清除间隔,以便在您单击不同的 link 时重新开始。像这样的东西可以解决问题。
var myInterval;
jQuery.fn.ShowAlert = function(value){
var value = value;
if(myInterval) {
clearInterval(myInterval);
myInterval = null;
}
myInterval = setInterval( function(){alert(value);},2000)
}
试试这个:
$(document).ready(function() {
jQuery.fn.ShowAlert = function(value){
var value=value;
var timerId = setInterval( function()
{
alert(value);
value = value-1;
if(value<1) {
clearInterval(timerId);
}
},2000)
}
$(document).ShowAlert(4);
});
</script>
<a id="show1">Show value 4</a>
<a id="show2">Show value 3</a>
<a id="show3">Show value 2</a>