あなたのpageinit
イベントに問題はありません。間違っているのは<a>
タグにあります。
発生しているエラーを取り除くには、コードに 2 つの変更を加える必要があります。
- そうじゃない
disabled
、そのdisable
- メソッドを呼び出す前に、
disable
メソッドを呼び出す必要がありますbutton()
。したがって、button
要素を初期化したことになります。
コードは次のようになります。
$('#ageNext').button().button('disable');
しかし、これを行うと、次のようなエラーが発生します。
キャッチされていない TypeError: 未定義のメソッド 'addClass' を呼び出せません
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/