删除以下 jQuery 点击功能

Posted

技术标签:

【中文标题】删除以下 jQuery 点击功能【英文标题】:Removing following jQuery click function 【发布时间】:2011-09-14 09:24:27 【问题描述】:

我正在尝试使用 Jquery 将表单验证添加到 Wordpress 中的自定义帖子类型。一切正常,除了提交按钮附加了一个内置点击事件,该事件添加了一个类以使按钮看起来被禁用并显示加载 gif。

现在表单实际上并没有提交,但它看起来对用户来说是这样,这让客户感到困惑。我尝试将 removeClass 添加到我的验证脚本中,但内置脚本在我之后触发,所以我似乎无法做任何事情来影响它。

有没有办法在表单返回 false 时停止此点击事件触发,最好不要尝试在 Wordpress 文件中找到它(因为我觉得这不值得)

谢谢

更新:

添加类的脚本部分(在 autosave.js 中)在这里

b('input[type="submit"], a.submitdelete', "#submitpost").click(function () 
        blockSave = true;
        window.onbeforeunload = null;
        b(":button, :submit", "#submitpost").each(function () 
            var c = b(this);
            if (c.hasClass("button-primary")) 
                c.addClass("button-primary-disabled")
             else 
                c.addClass("button-disabled")
            
        );
        if (b(this).attr("id") == "publish") 
            b("#ajax-loading").css("visibility", "visible")
         else 
            b("#draft-ajax-loading").css("visibility", "visible")
        
    );

这对我来说有点太深入了,我不太擅长 javascript。我不指望任何人把 wordpress 文件拿出来,但是任何人都可以立即告诉我发生了什么事情吗?我正在考虑删除 addClass 函数作为一种廉价且俗气的解决方法(我必须更新每个版本),但我当然不希望这样做。

【问题讨论】:

【参考方案1】:

您需要删除对象上的点击处理程序,而不仅仅是类。

$('.button').removeClass('submit').unbind("click");

看到这个帖子How to use .removeClass() to disable jquery function

【讨论】:

我刚刚尝试过,它仍然添加了类,并且随后单击按钮通过了验证并错误地提交了表单 嗯....点击可能是从外部元素委托的。如果是这种情况,那么您可能必须深入研究 wp 文件才能找到触发该事件的位置。 我找到了添加类的脚本部分,但我完全不确定应该编辑哪个位 如果验证失败,我想设置一个变量,然后将其添加到我在上面发布的 if 语句中,所以如果它是真的,它不会添加类。但是,如何将该变量从一个脚本传递到下一个脚本?它告诉我它在加载 wordpress 脚本时是未定义的 我决定在成功时将 addClass 添加到验证脚本中,并将其从 wordpress 文件中删除。是否意味着我必须在每个版本上更新它,但是哦。

以上是关于删除以下 jQuery 点击功能的主要内容,如果未能解决你的问题,请参考以下文章

jQuery删除表格行且只保留前第一行 求解决 麻烦啦

使用layui+jQuery实现点击删除单行数据

jquery有选择性的增加和删除表格

jQuery中,Ajax发送后刷新局部页面的方法

jquery中怎么删除<ul>中的整个<li>包括节点

jquery怎么删除html属性