次のHTMLをAjax経由でjQuery Mobileを搭載したWebページにロードしました。重要なのは、アンカータグに添付されたクラス名がonButton
であることです。jQueryが動的にロードされたjQuery Mobileボタンを検出しないのはなぜですか?
<a class="onButton ui-btn ui-btn-inline ui-btn-corner-all ui-shadow ui-btn-up-c" href="#" data-role="button" data-inline="true" data-theme="c"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Turn On</span></span></a>
Ajaxを経由してロードした後、私は、ドキュメントごとにjQueryのモバイルボタンのスタイルを適用するには、「作成イベント」を引き起こしました。
$.ajax({
url: '/loadAllButtons',
context: $('contentBox'),
cache: false,
data: {'listOfEntities': JSON.stringify([1,2,3,4,5])},
success: function(data) {
$(this).html(data).trigger("create");
}
});
ボタンが正常に読み込まれていることがわかります。しかし、私はconsole.log($('.onButton').length);
、コンソール0が表示されます。Chromeウェブ開発者がAjaxを介してロードonButton
クラスで<a>
タグの5つのインスタンスを指摘しているため、興味深いです
を呼び出すとき。
なぜ、jQueryは新しく読み込まれたアンカータグ(またはボタン)を検出しないのですか?ここでは、明確にすることが
は、私がデバッグ午前方法です:
$.ajax({
url: '/loadAllButtons',
context: $('contentBox'),
cache: false,
data: {'listOfEntities': JSON.stringify([1,2,3,4,5])},
success: function(data) {
$(this).html(data).trigger("create");
}
});
console.log($('.onButton').length);
ありがとうございました。
は、 'コンソールを呼び出して、ありがとう.log($( '。onButton')。length); '成功コールバック関数内で動作しました。興味深いことに、それは作成イベントで動作しましたが、リフレッシュイベントでは機能しませんでした。ロードされた要素を初期化する必要があるからだと思います。 – dangerChihuahua007