jQuery-ui:启用禁用按钮不会恢复事件

时间:2011-09-25 11:37:01

标签: jquery jquery-ui button

我遇到了一个问题:启用按钮后,它看起来像已启用但无法点击。 (重装页面解决了这个问题,但我不会这样做)。首先,在(文档).ready上,我禁用此按钮。

启用i:

$("#submit_order").attr('disabled', false).removeClass( 'ui-state-disabled' );

表示禁用:

$("#submit_order").attr('disabled', true).addClass( 'ui-state-disabled' ); 

HTML code:

<button id="submit_order">Send an order</button> 

按钮jQuery代码:

$( "#submit_order" )
    .button()
    .click(function() {
          $( "#dialog-form" ).dialog( "open" );
});

启用后单击此按钮时,上面的代码未调用。

4 个答案:

答案 0 :(得分:8)

是的,以前的答案可能对您有用,但对我来说,当我使用.removeAttr(“禁用”)并使用.removeClass(“ui-state-disabled”“重新启用”按钮时,事件不会触发。 )。

官方答案似乎是

$(".selector").button("option", "disabled", true);

禁用,

$(".selector").button("option", "disabled", false);

启用jQueryUI按钮()

来自http://jqueryui.com/demos/button/#option-disabled

答案 1 :(得分:6)

当你写作时

$("#submit_order").attr(...)

这意味着您使用stanadard属性。

你是不一致的:一旦你使用上面提到的方法,并且你正在写另一次:

$( "#submit_order" ).button().....

试试这个:

$("#submit_order").button().attr('disabled', false).removeClass( 'ui-state-disabled' );

$("#submit_order").button().attr('disabled', true).addClass( 'ui-state-disabled' );

答案 2 :(得分:1)

我记得jQueryUI通过提供不同的组件来扩展jQuery库,其中大多数组件都有方法enable()disable()

您可以尝试替代(恕我直言,更喜欢)方式:

$('#submit_order').button().enable();
   and
$('#submit_order').button().disable();

这将使你的思想从手动管理属性中释放出来 - JQUI自己动手。 这很强大,因为您可以使用不同的底层元素创建按钮(以便启用和禁用它们将使用不同的方法) 恩。标准按钮使用属性disabled =“disabled”(浏览器实现 - 标准)

但是用锚制成的按钮根本不支持这个。

答案 3 :(得分:0)

要启用这样的尝试:

$('#submit_order').removeAttr('disabled').removeClass('ui-state-disabled');

并禁用:

$('#submit_order').attr('disabled', 'disabled').addClass('ui-state-disabled');