Jquery将onClick函数作为单独的函数运行

时间:2016-11-21 16:48:02

标签: javascript jquery

我有一个jquery onClick函数:

    $('body').on('click', '#id_name', function() {
...

我希望将此函数作为ajax调用的另一个函数执行(目前这只是onclick)。

如果我的ajax来电成功,那么:

success: function() {
          // then execute top function 
        }

可以这样做吗?

4 个答案:

答案 0 :(得分:5)

然后你可以在ajax成功回调中使用$('#id_name').trigger('click')

答案 1 :(得分:1)

使该函数成为命名(非匿名)函数:

var someFunction = function () {
    //...
};

然后您可以将它用于点击事件:

$('body').on('click', '#id_name', someFunction);

或者你的回调:

success: someFunction

或者从中调用它:

success: function () {
    someFunction();
}

等。基本上,一旦你给这个函数命名并且它不再是匿名的,你可以在它的范围内的任何地方引用它。

答案 2 :(得分:1)

创建委托功能并单独调用

例如

function mainFunction(){
// Rest of code
} 

点击调用此

$('body').on('click', '#id_name', mainFunction)

在这样的ajax成功调用中

success: function() {
          mainFunction()
        }

答案 3 :(得分:1)

好吧,你可以明确地触发click事件。或者甚至更好,将您的点击代码外包到自己的功能中,然后您可以在成功功能中调用它。所以,而不是

success: function() {
    $('#id_name').trigger('click')
}

做得更好:

function clickEvent() {
    // do something in here...
}
$('body').on(
    'click',
    '#id_name',
    function (eventArgs) {
        eventArgs.preventDefault();
        clickEvent();
    }
);

然后您可以通过以下方式将其调用到您的成功回调中:

success: function() {
    clickEvent();
}