0

我正在尝试使用 wordpress 来停止 Jquery 发送的 ajax 请求,并使用一些额外的数据重新提交它。

这是它的工作原理:

  • 用户单击提交按钮。

  • Wordpress 提交 ajax 请求

  • 我以这种方式beforeSend设置了一个全局函数:.ajaxSetup

    $.ajaxSetup( {beforeSend: monitorRequests } );

  • 当wordpress提交请求时,它被我的函数拦截,它调用另一个提交另一个ajax请求的函数,而monitorRequests'返回false,取消原始ajax请求。

  • 我自己的ajax请求被发送,没有任何问题。

然而,这是问题所在。这样做一次后,如果用户再次单击提交按钮,则不会调用 wordpress 的单击处理程序。我想知道这是为什么,这是否与取消 ajax 请求有关?还是别的什么?我应该怎么做才能继续调用点击处理程序?

4

2 回答 2

2

弄清楚了,Wordpress 在 ajax 请求期间禁用了该按钮,并且由于从未调用过 wordpress 的回调,因此它保持禁用状态。

于 2012-12-28T03:47:32.593 回答
0

$.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 */ }); 

在现有脚本之前插入您的脚本。您的函数将首先被调用。

于 2012-12-28T03:58:30.730 回答