だから私はjqueryポストメソッドを使用して送信するフォームを持っており、部門の内容をajaxの返されたデータに置き換えます。コードは次のとおりです。
$(".filter_field").change(function() {
$.post("/business/feedbacks/", $("#filter_form").serialize(),
function(data) {
$('#table-content').replaceWith($('#table-content', $(data)));
});
});
今、私はこの方法で2つの問題に直面しています:
1)フォームのフィールド値を初期値にリセットしてから、次のコードのように変更イベントをトリガーするリセットボタンも使用しています。
$('#filter_reset').click(function () {
$(':input','#filter_form')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
$(".filter_field").trigger('change');
});
リセットボタンをクリックすると、フォームのフィールドがリセットされ、上記の変更イベントを介して ajax を使用してフォームが送信されます。これまでのところは問題ありませんが、変更イベントをトリガーできなくなりました。フォームのどのフィールドをクリックしても、ajaxを使用してフォームを送信しなくなりました。
2) #table-content 部門に soundmanager プラグインをインストールしています (その複数のインスタンス)。ajax送信後、そのsoundmanagerプラグインが機能しなくなりました.soundmanagerがreadyイベントでロードされるため、ajax送信およびreplaceWith後に実行されないため、機能しなくなります。
これらの問題を回避する解決策はありますか? クエリを実行するのは初めてです。間違ったことをしている場合は申し訳ありませんが、正しい方向に導いてください。よろしくお願いします。
編集: $.getScript("/static/js/360player.js"); を含めると、正常に動作します。jquery replaceWith コマンドを使用して、置換された要素にイベントをアタッチする方法はありませんか。「オン」イベントはまったく機能していないようです。
Edit2: 間違った部門で「on」を使用していたことが判明しました。私の悪い:(