2016-10-04 8 views
0

の要素のイベントをクリックしてキャッチすることはできません私は簡単に以下に示すように、チェックボックスのイベントをクリックしてキャッチすることができます。一方は、HTML文字列

<input type="checkbox" id="checkbox1" /> 

$('#checkbox1').change(function() { 
    if (this.checked) { 
     //Do stuff 
    } 
}); 

を、私はjQueryのDataTableの(AJAXのコールバックにあるチェックボックスを作成します)HTMLなどと同じ要素のイベントをクリックしcatchedすることはできません。

//... 
"ajaxSource": "/Student/GetStudents", 
"fnServerData": function (sSource, aoData, fnCallback) { 
    aoData.push({ "name": "all", "value": all }); 
    $.getJSON(sSource, aoData, function (json) { 
     fnCallback(json); 
     $("div.toolbar").html('<input type="checkbox" id="checkbox1" /> Get all records'); 
    }); 
}, 

HTML文字列のチェックボックスの値を取得するための最も適切な方法は何ですか?

+0

jQuery on()メソッドを使用する必要があります。 http://stackoverflow.com/questions/10082031/why-use-jquery-on-instead-of-click –

答えて

2

変更イベントリスナーは、現在存在するすべてのDOM要素に作成されるため、新しいチェックボックスを追加すると、変更メソッドは登録されません。コードをこれに変更します。

$(document).on('change','#checkbox1',function() { 
    //stuff 
}); 
+0

動作しているようですが、AJAX呼び出しのコールバックごとにレンダリングされるので、チェックボックスにその値を保持させることはできません。出来ますか?一方、私はコールバックメソッドであなたの答えにメソッドを使用する必要がありますか?またはjquery onload? –

+0

隠しフィールドの使用はどうですか? –

+0

このメソッドはAJAXコールバックには含まれていませんが、現在持っている場所に移動する必要があります。問題を解決するには、チェックボックスの値を変数に、AJAXコールバックのチェックボックスの値を保存した値に設定します。 –

関連する問題