Alo*_*lon 12 javascript jquery
var counter = 0;
jQuery("#div1, #div2").fadeIn('300',function(){
{
counter++;
console.log(counter);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将打印"1"和"2",因为jQuery fadeIn隐含在两个不同的DOM对象上.反正有没有让它只运行一次而不破坏这段代码?
Den*_*ret 17
简单的解决方案:
$("#div1").fadeIn(300);
$("#div2").fadeIn(300,function(){
// do something only once
});
Run Code Online (Sandbox Code Playgroud)
最干净的解决方案是使用jQuery的promise系统:
$.when($("#div1, #div2").fadeIn('300')).done(function(){
// do something only once
});
Run Code Online (Sandbox Code Playgroud)
这是一个快速的解决方案,但不是最好的
var myFlag = true;
jQuery("#div1, #div2").fadeIn('300',function(){
{
if(myFlag == true)
{
// write the code here
myFlag = false;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助......穆罕默德。