簡體   English   中英

jQuery將onClick函數作為單獨的函數運行

[英]Jquery run onClick function as separate function

我有一個jquery onClick函數:

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

我想將此功能作為ajax調用上的另一個功能執行(當前這僅是onclick )。

如果我的ajax調用成功,則:

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

有可能這樣做嗎?

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

將函數命名為(非匿名)函數:

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

然后,您可以將其用於點擊事件:

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

或您的回調:

success: someFunction

或從中調用它:

success: function () {
    someFunction();
}

基本上,一旦給函數命名,並且不再是匿名的,就可以在范圍內的任何地方引用它。

創建一個委托函數並分別調用

例如

function mainFunction(){
// Rest of code
} 

在點擊調用

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

這樣的內部ajax成功調用

success: function() {
          mainFunction()
        }

好吧,您可以顯式觸發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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM