0

動的にチェック ボックスがあるタスク ツリーの作成に問題があります。基本的にトップレベル(親タスク)にチェックが入っていれば、サブタスク(子ボックス)も全てチェックしたい。タスク ツリーの 1 つでこれを動作させていますが、何らかの理由で他のタスク ツリーで動作させることができません。

<script>
$(function() {

    $.ajaxSetup( { cache: false } );
    $('.task-tree').tree({
        ui: {
            theme_name: 'checkbox'
        },
        plugins : {
            checkbox: { three_state: false }
        },
        callback: {
            onload: function( tree ) {
                tree.open_all();
                $('.task-tree li a').each( function() {
                    var taskID = GetIdNum( $(this).attr('id') );
                    if ( $('#Task' + taskID + 'Enabled').val() == 1 )
                    {
                        console.log( $(this).parent() );
                        jQuery.tree.plugins.checkbox.check( $(this).parent() );
                    }
                });
            },
            onchange: function( node, tree ) {
                var selectedID = GetIdNum( $(node).find('a').attr('id') );
                var required = $('#Task' + selectedID + 'Required').val();
                console.log( 'REQ --> ' + required );

                if ( required == 1 )
                {
                    return false;
                }
                else
                {                   
                    $('.task-tree li a').each( function() {
                        var taskID = GetIdNum( $(this).attr('id') );
                        console.log( taskID );
                        $('#Task' + taskID + 'Enabled').val(1);
                    });
                    console.log( '----------------------------------------------' );

                    var unchecked = jQuery.tree.plugins.checkbox.get_unchecked(tree).find('a.not-required');
                    $(unchecked).each( function(){
                        var taskID = GetIdNum( $(this).attr('id') );
                        console.log( taskID );
                        $('#Task' + taskID + 'Enabled').val(0);
                    });     
                    console.log( '*************************************************' );
                }
            }
        }
    });

});

問題についてさらに情報が必要な場合はお知らせください。

4

0 に答える 0