簡體   English   中英

Jquery .ajax beforeSend似乎從按鈕中刪除了click事件處理程序?

[英]Jquery .ajax beforeSend seems to remove the click event handler from a button?

我正在嘗試使用wordpress來停止Jquery發送的ajax請求,並使用一些額外的數據重新提交它。

以下是它的工作原理:

  • 用戶單擊提交按鈕。

  • Wordpress提交ajax請求

  • 我有一個全球beforeSend功能設置使用.ajaxSetup這樣:

    $.ajaxSetup( {beforeSend: monitorRequests } );

  • 當wordpress提交請求時,它被我的函數攔截,該函數調用另一個提交另一個ajax請求的函數,而monitorRequests '則返回false,這會取消原始的ajax請求。

  • 我發送了自己的ajax請求,沒有任何問題。

不過這是問題所在。 執行此操作一次后,如果用戶再次單擊提交按鈕,則不會調用wordpress的單擊處理程序。 我想知道為什么會這樣,這是否與取消ajax請求有關? 還是其他什么? 我該怎么做才能繼續調用點擊處理程序?

想出來之后,Wordpress在ajax請求期間禁用了按鈕,並且由於從未調用過wordpress的回調,它仍然被禁用。

$ .ajaxSetup全局影響頁面中的ajax調用。 您不知道WP插件中實現了多少AJAX以及它們的自定義實現方式。

嘗試將范圍縮小到特定元素。 你可以使用

$('.submit').bind('click', function(){ /* your fn */ }); 
//You can have many 'click' binding eg..
$('.submit').bind('click', function(){ /* another */ }); 
$('.submit').bind('click', function(){ /* yet another */ }); 

在現有腳本之前插入腳本。 您將首先調用您的函數。

暫無
暫無

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

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