只运行一次该功能

时间:2014-09-22 10:10:13

标签: javascript jquery

我执行了以下两次执行的功能,可以选择只执行一次吗? 然而,尝试了许多事情却没有取得任何成功;(

$("#myDiv1, #myDiv2").fadeIn('20',function(){
    {
        alert('alert');
    }
});

3 个答案:

答案 0 :(得分:1)

您可以使用承诺来解决多个回调问题:

$("#myDiv1, #myDiv2").fadeIn('200').promise().done(function()
{
    console.log('Test');
});

.promise()方法返回动态生成的Promise,一旦绑定到集合的特定类型的所有操作都会解析。

答案 1 :(得分:1)

尝试,

$("#myDiv1, #myDiv2").fadeIn(20).promise().done(function(){
 alert('alert');
});

答案 2 :(得分:0)

如果DOM中同时包含#myDiv1#myDiv2,则会运行两次。没有办法解决它(除了使用其他答案所建议的promise())。您只需将选择器更改为$('#myDiv1')

另一种方法是使用标志(JSFiddle Demo

var do_run = true;

$('#myDiv1, #myDiv2').fadeIn(20, function() {
    if (! do_run) return;
    do_run = false;

    alert(2)   
})