【问题标题】:Removing following jQuery click function删除以下 jQuery 点击功能
【发布时间】: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 函数作为一种廉价且俗气的解决方法(我必须更新每个版本),但我当然不希望这样做。

【问题讨论】:

    标签: jquery wordpress validation forms click


    【解决方案1】:

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

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

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

    【讨论】:

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