2

チェックボックスがページ自体の中にある場合、以下のコードは正常に機能します。問題のコンテンツがjqueryから読み込まれる場合.load、チェックボックスは登録されません。

以下のhtmlコードは内に表示されます<div id='output'></div>。そのdivの外に移動すると正常に動作します。

JS

$(document).ready(function() {
    $('#dropdown').change( function() {
        $('#output').load('/process.php',{dropdown: $(this).val()});
    });

    $(".checkbox").click(function(){
        $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
    });
});

process.phpのHTML

<input type="checkbox" class="checkbox">
4

3 に答える 3

4

on()メソッドを使用して、AJAXを介してDOMに追加された要素を考慮する必要があります。これを変更してみてください-

$(".checkbox").click(function(){
    $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});

これに-

 $('body').on('click', '.checkbox', function(){
     $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
 });

http://api.jquery.com/on/

于 2012-12-21T19:38:03.070 に答える
3

checkboxハンドラーをに変更してみてください

$("body").on("click", ".checkbox", function(){
    $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
于 2012-12-21T19:36:52.850 に答える
3

多分あなたはライブバインディングを介してそれを試してみるべきです

$(document).ready(function() {
    ...

    $(document).on( 'click', '.checkbox', function(){
        $('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
    });
});

このようにして、イベントのバインドが行われた後に宣言されたオブジェクトもイベントをリッスンできます。

于 2012-12-21T19:36:55.117 に答える