【问题标题】:Disable jQueryUI button and keep its original layout/style禁用 jQueryUI 按钮并保持其原始布局/样式
【发布时间】:2012-10-24 11:04:30
【问题描述】:

如果我使用“禁用”选项禁用 jQueryUI 按钮,按钮会变暗。 但我不希望它那样 - 我只希望它没有响应并以其原始布局设置样式 - 没有翻转,没有点击 - 一切都死了。

取消绑定按钮单击按钮没有帮助。 也可以使用 unbind() 解除按钮上的所有事件的绑定。

有什么想法吗?

【问题讨论】:

  • 你可以覆盖 JQueryUI CSS
  • @Bouillou:如果你的意思是 mybuttons.removeClass("ui-button-disabled ui-state-disabled"),这可以工作,但它会留下点击。或许还有翻车。正如我的问题中所写,我希望按钮失效。
  • 仍在试图弄清楚为什么这被否决了。我很惊讶这不是一个更大的问题。
  • @SeanBeck,一点也不知道。但该解决方案仍然适用于我:)

标签: jquery-ui jquery jquery-ui-button


【解决方案1】:

实际上,您可以在禁用按钮后删除“禁用”类:

$( "button" ).button();

$( "button" ).button('disable');

$( "button" ).removeClass('ui-button-disabled ui-state-disabled')

这是一个小提琴:http://jsfiddle.net/9gq9n/

【讨论】:

    【解决方案2】:

    好吧,我终于想通了。 要禁用任何 jQueryUI 按钮,包括附加标签的“按钮化”复选框(同时保留其原始布局),您必须执行以下操作:

    • 取消绑定其事件
    • 将事件与其标签解除绑定

    所以,这里有一个例子:

    $("mybuttons").unbind();
    $("mybuttons").getLabels().unbind();
    

    我正在使用我最近编写的插件(originally 由 SO 成员 Gijs,但并不总是有效...)

    jQuery.fn.getLabels = function () {
        return this.map(function () {
            var parentLabels = $(this).parents('label').get();
            var associatedLabels = this.id ? associatedLabels = $("label[for='" + this.id + "']").get() : [];
            return parentLabels.concat(associatedLabels);
        });
    };
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-09-21
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2022-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多