0

わからない問題があります。ここにコードがあります

$('.new').click(function(e){
    e.preventDefault();
    $('#y').load('/y/y #x'), function(e) {};             
    showadd(); // function to call modal
    $("#x").attr("data-remote","true"); // making :remote => true 
});

さて、上記のコードでロードしたフォームで成功をバインドしたいという問題は何ですか。唯一の問題は、それが機能しないことです! コンソールから追加した後にのみ機能します。

だから私のバインディング機能

$('#x').bind('ajax:success', function(evt, data, status, xhr){
    alert("YES");
});

上記のコードを $('.new').click( ... コンソール経由で追加した場合のみ。

1 つの要素に関連付けられている他のバインディング イベントをすべて削除し、 function の呼び出しごとに 1 つ追加する方法はありますか?

たとえば、このようなことをしたいと思います

function makingAjaxRespond() {
// remove all associated binding with the form
// add one binding
// confirm that binding has been added
}

最初に述べた問題を理解するのに本当に苦労しています。私が見逃している非常に簡単な方法はありますか?

ご協力いただきありがとうございます。

4

2 に答える 2

0

コンソールにエラーが表示されていますか? 問題は、$jQuery が含まれる前に使用しようとしているか、DOM の準備が整う前に要素を選択しようとしているようなものです。解決策は、使用して、jQuery を含む$(function () { ... })ドキュメントに出力されていることを確認することです。<script src=...>

于 2013-03-27T16:47:39.620 に答える
0

onオブジェクトがその時点で存在しないため、メソッドがバインドされていないように思えますか?

次のようなものを試してください:

$(document).on('ajax:success', '#x', function(evt, data, status, xhr){
    alert("YES");
});
于 2013-03-27T16:44:39.717 に答える