0

我有以下两个功能,由同一个点击事件触发:

$(".mydiv").click(function() {

// Code 1

});

$(".mydiv").click(function() {

// Code 2

});

我希望两个代码块在同一个点击事件上触发,但我希望代码 2 在代码 1 完成后立即触发。实现这一目标的最有效方法是什么?

谢谢

4

4 回答 4

4

“代码 1”和“代码 2”应该是函数调用。然后你可以这样做:

$('.mydiv').on('click', function(){
  code1();
  code2();
});
于 2013-09-07T00:02:44.830 回答
1
var func1 = function() {
  //code here


  func2();
}

var func2 = function() {
  //code here
};

$('.mydiv').click(func1);

注意:如果您在 func1 中执行异步操作并希望 func2 在这些操作完成时触发,这将不起作用。

于 2013-09-06T23:59:00.053 回答
1

可以像以下示例一样为您的第一个函数设置回调:

$(".mydiv").click(function() {
    myfirstFunction(function(){
        myLastFunction();
    });
});

myfirstFunction = function(callback) {
    // do your thing
    // and at the end...
    if (typeof callback === "function") {
        callback();
    }
}

点击这里查看小提琴

于 2013-09-07T00:04:41.800 回答
0

代码是从上到下执行的,所以应该是:

$(".mydiv").click(function() {

// Code 1
// Code 2
});
于 2013-09-06T23:59:05.030 回答