Javascript 防止多次显示弹出窗口。Ajax添加结果已在DOM中注册

Javascript 防止多次显示弹出窗口。Ajax添加结果已在DOM中注册,javascript,jquery,Javascript,Jquery,我很失望,因为我无法摆脱这个问题!我有一个产品视图和一个“添加到购物车”按钮。如果我单击按钮,表单将被提交(productAddToCartForm.submit(this)),并将调用以下函数: var myAjaxify = function(button) { button.prop('disabled', true); if (this.validator.validate()) { $(this.form).request({ onComplete: function(re

我很失望,因为我无法摆脱这个问题!我有一个产品视图和一个“添加到购物车”按钮。如果我单击按钮,表单将被提交(productAddToCartForm.submit(this)),并将调用以下函数:

var myAjaxify = function(button) {
button.prop('disabled', true);
if (this.validator.validate()) {
  $(this.form).request({
    onComplete: function(response) {
      var responseData = JSON.parse(response.responseText);
      if (responseData.success === 'true') {
        Dialog.confirm(
          responseData.message,
          {
            className: 'openit',
            width: 385,
            height: 220,
            destroyOnClose: true,
            id: 'ajax-add-result',
            closable: true,
            zIndex: 100,
            title: 'Added to Your Cart',
            okLabel: 'Continue Shopping',
            cancelLabel: 'Proceed to Cart',
            onCancel: function() {
              window.location = '/checkout/cart';
            },
            buttonClass: 'action-btn'
          }
        );
        ...
但是需要几秒钟,弹出窗口才会出现。如果我同时多次点击“添加到购物车”按钮,弹出窗口会出现不止一次。如果我没有足够快地关闭弹出窗口,我也会得到错误“ajax添加结果已经在DOM中注册”。我试图禁用按钮($(this).prop('disabled',true);),但我的所有解决方案都破坏了脚本:( 有人能帮我吗

非常感谢您的帮助

最好的,汉内斯。

取消按钮:)


加载所有内容后,您可以将事件绑定回去。

您如何执行myAjaxify?您是否能够解决问题?我也面临着同样的问题,直到现在我还没有得到任何修复。请在此线程中发布您的修复。大多数人现在更喜欢.off()而不是unbind函数。你想用什么取决于你自己。
$( "#yourbutton").unbind( "click" );