微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery-mobile – jquery mobile error – 在初始化之前无法调用按钮上的方法;试图调用方法’禁用’

根据文档( http://jquerymobile.com/demos/1.2.0/docs/api/events.html),应该在执行jQuery移动页面的所有小部件和插件之后调用pageinit事件.所以,我相信我应该能够在事件回调中与该页面上的元素进行交互而不受惩罚.但是,我监听页面初始化,然后尝试与页面上的按钮进行交互,我收到以下错误

cannot call methods on button prior to initialization; attempted to
call method ‘disabled’

我已经把一个codepen放在一起,向你展示:

http://codepen.io/mattsnider/pen/mvcbD

是什么赋予了? pageinit是否无法正常工作或这是一个错误

解决方法

您的pageinit事件没有任何问题.错误在于< a>标签.

删除您遇到的错误,您必须对代码进行两处更改:

>它没有禁用,禁用它
>在调用disable方法之前,必须调用button()方法.因此,您将初始化按钮元素.

这就是代码现在的样子:

$('#ageNext').button().button('disable');

但是,如果你这样做,你会得到这样的错误

Uncaught TypeError: Cannot call method ‘addClass’ of undefined

罪魁祸首在于调用disable方法代码

disable: function() {
  this.element.attr( "disabled",true );
  this.button.addClass( "ui-disabled" ).attr( "aria-disabled",true ); 
  //^^ Uncaught TypeError: Cannot call method 'addClass' of undefined    
  return this._setoption( "disabled",true );
}

你看到了那个按钮吗?如果元素不是真正的按钮,这将变为未定义.

所以说,我已经禁用只能在输入[type = button]和< button />上工作.元素的类型.出于某种原因,这在< a />上无法正常工作.冒充按钮.我通过手动将ui-disabled类添加到元素中来实现此功能,如下所示:

$(document).on('pageinit','#age',function (e) {
    $('#ageNext').addClass('ui-disabled');
});

演示:http://jsfiddle.net/hungerpain/gzAHT/

原文地址:https://www.jb51.cc/jquery/178958.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐