繁体   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