如何在jQuery Mobile中禁用链接按钮?

Ric*_*rdP 14 javascript mobile jquery jquery-mobile

我有一个jQuery Mobile Beta 1网站,带有jQuery 1.6.1链接按钮,如下所示:

<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
Run Code Online (Sandbox Code Playgroud)

在document.ready中我设置了click事件:

$('#subselection').livequery("click", function(){
  alert('test');
});
Run Code Online (Sandbox Code Playgroud)

我想禁用这个"链接按钮",我试过了

$('#subselection').button('disable')
Run Code Online (Sandbox Code Playgroud)

并且该命令设置按钮样式,就像它被禁用但单击事件有效.

我也试过了

$('#subselection').prop('disabled', true);
Run Code Online (Sandbox Code Playgroud)

和$('#subselection').prop('disabled'); 给出了真实,但没有禁用.

有人有个好主意.

Phi*_*ord 26

链接按钮示例:

JS

var clicked = false;

$('#myButton').click(function() {
    if(clicked === false) {
        $(this).addClass('ui-disabled');
        clicked = true;
        alert('Button is now disabled');
    } 
});

$('#enableButton').click(function() {
    $('#myButton').removeClass('ui-disabled');
    clicked = false; 
});
Run Code Online (Sandbox Code Playgroud)

HTML

<div data-role="page" id="home">
    <div data-role="content">

        <a href="#" data-role="button" id="myButton">Click button</a>
        <a href="#" data-role="button" id="enableButton">Enable button</a>

    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

注意: - http://jquerymobile.com/demos/1.0rc2/docs/buttons/buttons-types.html

像按钮一样的链接具有与下面真正的基于表单的按钮相同的可视选项,但是有一些重要的区别.基于链接的按钮不是按钮插件的一部分,只是使用底层的buttonMarkup插件生成按钮样式,因此不支持表单按钮方法(启用,禁用,刷新).如果您需要禁用基于链接的按钮(或任何元素),则可以使用JavaScript自行应用已禁用的ui-disabled类来实现相同的效果.

  • 这个选项实际上比当前接受的答案(Niklas')更好,因为该按钮实际上看起来已被禁用,jQuery Mobile将自动忽略来自具有'ui-disabled'类的按钮的点击.令人遗憾的是,为什么jQM develpers没有采取额外的,显然很小的最后一步,只是简单地为基于链接的按钮提供了一些启用/禁用方法. (2认同)

Nik*_*las 13

a元素没有属性disabled.因此,定义一个不会影响您可能附加到它的任何事件处理程序.

示例:http://jsfiddle.net/niklasvh/n2eYS/

有关可用属性的列表,请查看HTML 5参考.

要解决您的问题,您可以改为例如在元素中指定disabledas data:

$('#subselection').data('disabled',true);

然后在你的事件中检查它的集合:

if (!$(this).data('disabled'))

例如:http://jsfiddle.net/niklasvh/n2eYS/5/


Gil*_*ong 9

在这种情况下不需要jquery/javascript.只需添加一个'ui-disabled'类.

例如:

<a class="ui-disabled" id="subselection" href="#" data-role="button" data-theme="b">TEST</a>
Run Code Online (Sandbox Code Playgroud)

多数民众赞成我的工作,这对我有用;)