4

いくつかの奇妙な要件と、アプリケーションでの jQuery の実装方法により、チェックボックスの onclick イベントを介して jQuery 関数を呼び出す必要があります。

以下は、div ID を介してトリガーされる関数の完全に適切な実装です。ただし、この同じコードは私のアプリケーションでは機能しません。

私のアプリケーションでは、jQuery バージョン 1.7.1 を使用しています。エラーは発生していません。関数は単にトリガーされません。Chromeを使用してデバッグしています。onclick で呼び出そうとすると、応答しますが、スローバックしundefinedます。

HTML

<div id="dialog-confirm" title="Select Options">
    <!--I need to call function in onclick event for checkbox below-->
    <input type="checkbox" id="chkall" /> Check/Uncheck
    <br /><br />

    <input type="checkbox" />Option 1<br />
    <input type="checkbox" />Option 2<br />
    <input type="checkbox" />Option 3<br />
    <input type="checkbox" />Option 4<br />
    <input type="checkbox" />Option 5<br />
    <input type="checkbox" />Option 6<br />
    <input type="checkbox" />Option 7
</div>

JS

$(function() {
    $( "#dialog-confirm" ).dialog({
         resizable: false,
         height:350,
         modal: true,
         buttons: {
            "Go": function() {
                $( this ).dialog( "close" );
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }
    });
});

$(document).ready(function(){ 
    $('#chkall').click(function() {
        // this is the function I need to call
        var opt = $(this).parent().find('input[type=checkbox]');
        opt.prop('checked', $(this).is(':checked') ? true : false);
    });     
});

最後に、フィドルリンク

http://jsfiddle.net/uxRGB/1/

4

3 に答える 3

5

change代わりにイベントを使用click

$('#chkall').change(function() {

それでもうまくいかない場合は、これを使用できます:

<input type="checkbox" id="chkall" onclick="myfunc()" />

と:

function myfunc () {
        // this is the function I need to call
        var opt = $("#chkall").parent().find('input[type=checkbox]');
        opt.prop('checked', $("#chkall").is(':checked') ? true : false);
    }
于 2013-08-04T13:38:06.587 に答える
0

これを試しましたか?

 $('#chkall').trigger('click');

これにより、チェックボックスに関連付けられたハンドラーと動作が実行されます。参照: http://api.jquery.com/trigger/

于 2013-08-04T13:31:25.493 に答える