禁用jQueryUI按钮并保持其原始布局/样式

时间:2012-10-24 11:04:30

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

如果我使用“禁用”选项禁用jQueryUI按钮,则按钮变暗。 但我不希望这样 - 我只是希望它没有反应并以其原始布局设计风格 - 没有翻转,没有点击 - 一切都死了。

从按钮单击取消绑定按钮无济于事。 使用unbind()从按钮中解除所有事件的绑定。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

$( "button" ).button();

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

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

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

答案 1 :(得分:1)

好的,最后我发现了。 要禁用任何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);
    });
};

希望它有所帮助。