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

发布于 2024-12-06 06:50:26 字数 618 浏览 0 评论 0原文

我有一个问题:启用按钮后,它看起来像是已启用,但不可单击。 (重新加载页面可以解决此问题,但我不会这样做)。首先,在(文档).ready 上,我禁用此按钮。

对于启用我这样做:

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

对于禁用:

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

HTML代码:

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

按钮jQuery代码:

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

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

I have a problem: after enable button, it look like enabled but isn't clickable. (reloading page fix this problem, but i won't do it). Firstly, on (document).ready, i disable this button.

For enable i do:

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

for disable:

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

HTML code:

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

button jQuery code:

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

When i clicked this button after enabling, code above didn't invoke.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蘸点软妹酱 2024-12-13 06:50:26

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

官方答案似乎是

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

禁用并

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

启用

http://jqueryui.com/demos 中的 jQueryUI 按钮() /button/#option-disabled

Yes, previous answers may work for you, but for me the events weren't firing when I "re-enabled" the button with .removeAttr("disabled") and using .removeClass("ui-state-disabled").

The official answer appears to be

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

to disable, and

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

to enable a jQueryUI button()

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

拍不死你 2024-12-13 06:50:26

当您编写时,

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

这意味着您使用标准属性。

你是不一致的:一旦你使用上述方法,而另一次你在写:

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

试试这个:

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

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

When You are writing

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

it means that you use stanadard attributes.

You are inconsistent: once You are using mentioned above method, and another time you are writing:

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

try this:

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

$("#submit_order").button().attr('disabled', true).addClass( 'ui-state-disabled' );
抠脚大汉 2024-12-13 06:50:26

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

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

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

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

但由锚点制成的按钮根本不支持此功能。

As I remember jQueryUI extends jQuery library by providing different components where most of them have methods enable() and disable().

You may try alternative (IMHO more preferred) way:

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

this will free Your mind from manual managing attributes - JQUI do this self.
This is powerful, because you may create buttons using different underlying elements (so that enabling and disabling them will use different methods)
ex. Standard button uses attribute disabled="disabled" (browser implementation - standard)

But button made from anchor doesn't support this at all.

长不大的小祸害 2024-12-13 06:50:26

要启用,请尝试这样:

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

并禁用:

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

To enable try like this:

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

and to disable:

$('#submit_order').attr('disabled', 'disabled').addClass('ui-state-disabled'); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文