動的にチェック ボックスがあるタスク ツリーの作成に問題があります。基本的にトップレベル(親タスク)にチェックが入っていれば、サブタスク(子ボックス)も全てチェックしたい。タスク ツリーの 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( '*************************************************' );
}
}
}
});
});
問題についてさらに情報が必要な場合はお知らせください。