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

前端之家收集整理的这篇文章主要介绍了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/

猜你在找的jQuery相关文章