1

jstree ライブラリを使用してツリーを表示しています。

以下のコードでは、ツリーで選択したノードをループ処理しており、いくつかの条件に基づいて、変数「allow_edit」にブール値を割り当てています。

次の場合はメインループを中断したい'allow_edit = false'.

ラベルを使用してループを壊そうとしましたが、うまくいかないようです。未定義のラベルを取得しています。

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'? どうもありがとう

4

1 に答える 1

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にブール値 (trueまたはfalse) にするには、次のようにします。

flag = !!(something);

2 つの(論理 "not") 演算子は、式 ("something") がステートメント!のテスト句である場合に使用されるのと同じ規則によって、式 ("something") をブール値として評価するように強制します。if

于 2013-02-12T14:30:54.687 に答える