2013-02-09 6 views
7

Moja funkcja jstree jest tutaj.
Ustawiłem 'select_limit' : 3, ale nie działa. po uruchomieniu mogę wybrać więcej niż 3 węzły, ale muszę wybrać nie więcej niż 3 węzły.jstree select_limit nie działa. Chcę ustawić limit wyboru, aby wybrać tylko 3 węzły.

j1("#utree_activity").jstree({ 
     "plugins": ["themes", "html_data", "ui", "crrm", "checkbox"], 
     "html_data": { 
      "ajax": { 
       "url": urlGlobal + "jstrees/activitytree/", 
       "asynchronous": "false", 
       "data": function (n) { 

        return { 
         id: n.attr ? n.attr("id") : 0, 
         default_activities: default_activities 
        }; 
       }, 
       "success": function (gb) { 

       }, 

      } 
     }, 
     "ui": { 
      "select_limit": 3, 
     }, 

     "cookies": { 
      cookie_options: { 
       path: "/" 
      } 
     }, 

     "checkbox": { 
      two_state: true, 
      real_checkboxes: false 
     } 
    }); 
+1

co jest J1 używasz? – rafi

+1

@rafi_ccj 'var j1 = jQuery.noConflict();' –

+1

Twój kod wydaje się być w porządku. możesz to stworzyć w jsfiddle? to byłoby pomocne. – rafi

Odpowiedz

8

select_limit doens't wyboru uchwyt musi toczyć własną metodę before.jstree.

j1.bind("before.jstree", function (e, data) { 
    if (data.func === "check_node") { 
     if (j1.jstree('get_checked').length >= 1) { 
      e.preventDefault(); 
      return false;     
     } 
    } 
}); 

Zauważ, że ten kod jeśli dla przykładu, a nie obsługuje węzły potomne

skrzypce robocza: http://jsfiddle.net/cfb9J/1/

+1

, ale co z select_limit @Rodrigo Assis? –

0

Nie ma innej opcji brakuje, prawdopodobnie trzeba dodać moduł UI, spróbuj tego:

j1("#utree_activity").jstree({ 
"plugins" : ["html_data","ui"], 

//the rest of your code 
}); 
+1

Dodałem już tę linię "wtyczki": ["motywy", "html_data", "ui", "crrm", "checkbox"], trzeba zmienić mój kod? –

+2

Najpierw spróbuj dodać. Umysł tworzenia jsfiddle? – luckystars

+1

Niestety, zmieniłem kod, ale nadal nie działa ... –