您的pageinit
活動沒有任何問題。錯誤的地方在於<a>
標籤。
要刪除你得到的錯誤,你就必須進行兩處更改您的代碼:
- 它不是
disabled
,其disable
- 您的通話
disable
方法之前,你必須請撥打button()
方法。因此,您將初始化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);
}
您在那看到this.button
?如果元素不是真正的按鈕,則這將變爲undefined
。
這樣說,我已經得到disable
僅適用於input[type=button]
和<button/>
類型的元素。由於某種原因,這不能按照預期在假冒按鈕<a/>
上工作。我這有通過手動添加ui-disabled
類的元素,像這樣的工作:
$(document).on('pageinit', '#age', function (e) {
$('#ageNext').addClass('ui-disabled');
});
演示:http://jsfiddle.net/hungerpain/gzAHT/
令人難以置信...謝謝 –
這似乎仍然適用於jQuery Mobile 1.4.5。 – Ken