私が構築している JQM (1.3.0) アプリでは、「on」を使用してすべての送信ボタンをクリック イベントにバインドし、現在および将来のすべての送信ボタンにこのイベントがバインドされるようにします。$(document).ready() でこれらのバインディングを行っているのは、1 回だけ呼び出す必要があると考えているためです。
JQMパネルをいくつかのコンテンツで更新し、そのコンテンツで .trigger('create') を呼び出します。何が起こるかというと、新しく作成された送信ボタンがクリックされたときにバインドされたクリックイベントをトリガーする必要がありますが、そうではありません。
これは、私が達成しようとしていることを示すフィドルです。デモでは、送信ボタンをクリックするたびにメッセージ ボックスに「クリック済み」と表示されるはずですが、残念ながら、これは最初の要素でのみ発生します。
$(function(){
$('input[type="submit"]').on('click', function(e){
$('#msg').append('<div>Clicked</div>');
$('#panel').html('<input type="submit" value="New Button">').trigger('create');
});
});
ここで .on() を間違って使用していますか? すべてのバインディングを関数に詰め込み、 .trigger('create') が呼び出されるたびにその関数を呼び出すことができると思います...しかし、それは非効率的です。