2013-02-12 59 views
1

我正在使用jstree庫來顯示一棵樹。中斷主循環 - jstree

在下面的代碼中,我循環遍歷樹中的選定節點,並基於某些條件,我將一個變量'allow_edit'分配給一個布爾值。

我想破主循環,如果​​

我嘗試使用標籤和破環,但是這似乎並沒有工作。我正在獲取未定義的標籤。

loop1: 
$j.each($j("#demo2").jstree("get_selected"), function(index, element) { 

    var selected_node_depth = parseInt($j(element).attr('node_depth')); 
    var allow_edit = false; 


    var array_first_filter = $j.grep(array_first, function(v) { return v[1] != "not detected";}) 
    var array_second_filter = $j.grep(array_first_filter, function(v) { return v[3] > selected_node_depth;}) 


    if (array_second_filter.length === 0 || array_second_filter.length == null) 
    { 
    allow_edit = true; 
    } 
    else{ 
    alert("Confliction exists in your selected terms."); 
    allow_edit = false; 
    //break loop1; /** not working, getting undefined label **/ 
    } 


} 

任何關於如何打破主循環的建議如果'allow_edit = false'?非常感謝

回答

2

如果您傳遞給.each()的函數返回false,則迭代將停止。

else { 
    allow_edit = false; // pointless since you're about to return ... 
    return false; 
} 

此外,作爲一種編程風格的音符,形式的任何建築:

if (something) { 
    flag = true; 
} 
else { 
    flag = false; 
} 

可以更好地寫成簡單:

flag = something; 

在JavaScript,以便flag爲布爾值(truefalse),您可以這樣做:

flag = !!(something); 

兩個!(邏輯「非」)運算符強制表達(「東西」)被評價爲通過相同的規則的布爾作爲時表達式是一個if語句的子句測試中使用。

+0

oh..yes你是對的,好吧,我怎麼能錯過這個?! – Kim 2013-02-12 14:36:07