0

私のプロジェクトには、jQuery UI タブを使用するページがあります。各タブは AJAX を使用してファイルを呼び出し、それぞれがリストを表示します。これらのリストの各<li>要素には、 のような子要素があり<input type = "checkbox" />ます。

必要なのは、checkbox要素のどこかをクリックしたときに (以前の状態に応じて) 要素をチェックまたはチェック解除すること<li>です。

このような関数を使用してみ<li onclick = "javascript: CheckboxClick();">ましたが、ユーザーが実際のチェックボックスをクリックしようとするまではうまくいきました。次に、関数がチェックボックスのアクションと同時に実行され、それらが互いにキャンセルされました。

$(document).ready()チェックボックスの子がこの関数を起動しないようにするために、同様のバージョンの関数を使用してみましたが、リストは AJAX で作成され、最初の DOM の一部がありませんでした。機能が動作しませんでした。w3schools on() メソッドの説明によると、「on() メソッドは現在の要素と将来の要素の両方で機能します (スクリプトによって作成された新しい要素のように)」と記載されているため、click代わりにを使用してみました。そして私は成功しませんでした。on()

後者の試みは次のようなものでした:

$("li.single-line.restore-manager").on("click", function () {
    //code

}).children('input[type="checkbox"]').click(function (e) {

    return false;
});

そして実際には何も起こりません。

これを機能させる方法のアイデアはありますか?

4

2 に答える 2

0

チェックボックスのクリックを処理するように更新されたコード:

$(document).on("click", 'li.single-line.restore-manager', function(e){ // Use document or parent of li which exists before `AJAX` call
    if (e.target.nodeName != 'INPUT') {
        // your code here
    }
});
于 2013-07-11T13:39:57.637 に答える