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

我有一个问题:启用按钮后,它看起来像启用但不可点击。 (重新加载页面修复了这个问题,但我不会这样做)。 首先,在(文件).ready上,我禁用此按钮。

为了启用我做:

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

禁用:

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

HTML代码:

  

按钮jQuery代码:

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

当我在启用后单击此按钮时,上面的代码没有调用。

当你写作

 $("#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' ); 

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

官方的答案似乎是

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

禁用,和

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

启用jQueryUI按钮()

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

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

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

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

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

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

要启用这样的尝试:

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

并禁用:

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