12

私はjQueryjsTreeプラグインチェックボックスと戦っています。OK、チェックボックスをオンまたはオフにしたときにイベントを処理する方法を見つけました。便利な場合は、コードを貼り付けることができます。

.bind("check_node.jstree", function(e, data)
        {

            if(data.rslt.obj !== undefined && data.rslt.obj.attr(\'id\') !== undefined)
            {

                jQuery.ajax({
                        async : false,
                        type: "POST",
                        dataType: "json",
                        url: "adsmanager/adsfields/ajaxappendcategory",
                        data:
                        {
                            "id" : data.rslt.obj.attr(\'id\'),
                            "itemId" : "' . Yii::app()->getRequest()->getParam('id') . '",
                        },
                        success: function(r)
                        {
                            if(r === undefined || r.status === undefined || !r.status)
                            {
                                data.rslt.obj.removeClass(\'jstree-checked\');

                                data.rslt.obj.addClass(\'jstree-unchecked\');

                            }
                            else
                            {
                                niceBox(\'ok\');
                            }
                        }
                    });

            }

            return true;
        })

これですべて問題ありませんが、ツリーの読み込み時にチェックボックスをオンにする方法がどこにも見つからないことを知っています。たとえば、新しいニュースアイテムを作成するときに、ニュースアイテムにカテゴリセレクターのようなjsTreeを使用している場合は、すべて問題ありません。選択したカテゴリでjsTreeが必要なアイテムを更新します。これは、jsTreeのロード時にノードを選択する方法の例が見つかりません。

この質問について何か助けはありますか?

4

8 に答える 8

8

JSON_DATA を使用している場合はclass:jstree-checked、ノードの attr オブジェクトに追加します。

{
  "data": "node name",
  "attr": { "id": "node id", "class":"jstree-checked" }
}
于 2012-08-01T05:30:43.857 に答える
7

現在の JSTREE バージョン 3.2.1 と JSON データには、state : {checked : true } を使用する必要があります。

チェックボックスセクションの構成に追加します

"checkbox":{ "tie_selection": false }

この例は正常に動作します

data : [
            { "text" : "Root", state : { opened : true }, children : [

                { "text" : "Child 2", state : { checked : true },

]
于 2015-09-03T05:32:40.733 に答える
3

チェックボックスプラグインオプションtwo_stateをtrueに設定することで解決策を見つけました

"checkbox" => array(  "two_state" => true)

次に、Xmlデータを使用している場合はパラメータを追加class="jstree-checked"します

すべてうまくいく:)

幸運を ;)

于 2010-11-09T14:20:12.617 に答える
0

"state" : { "selected" : true } チェックボックスを選択します

 $('#frmt').jstree( { 
        'core' :  {
            'data' : [{ 
                    "text" : "root text",
                    "state" :  {  "opened" : true  } ,
                    "children" : [{ 
                            "text" : "child text",
                            "id" : "idabc",
                            "state" :  {  "selected" : true  } ,
                            "icon" : "jstree-file",

                    }]
                 },

            ]},
            'checkbox': {
                      three_state: true
             },
            'plugins': ["checkbox"]
     });
于 2016-09-18T09:58:33.353 に答える