3

クリックイベントをjstreeの非同期リストアイテムに追加したいと思います。

理想的な結果は次のとおりです。jstree内のアイテムをクリックすると、アイテムのコンテンツがパラメーターとしてSQLクエリに転送され、クエリが実行されて、同じページまたは別のページに結果セットが表示されます。 。

実装方法はわかりませんが。jquery.tree.jsで次のコードを見つけました。そして、私はイベントを変更する必要があると思います。しかし、私は方法がわかりません。コードを見て、いくつかの提案やガイダンスを教えてもらえますか?

$("#" + this.container.attr("id") + " li a")
 .live("click.jstree", function (event) { // WHEN CLICK IS ON THE TEXT OR ICON
  if(event.which && event.which == 3) return true;
  if(_this.locked) {
   event.preventDefault(); 
   event.target.blur();
   return _this.error("LOCKED");
  }
  _this.select_branch.apply(_this, [event.target, event.ctrlKey || _this.settings.rules.multiple == "on"]);
  if(_this.inp) { _this.inp.blur(); }
   event.preventDefault();
   event.target.blur();
   return false;
  })

ページコード:

<script type="text/javascript" >
    $(function () { 
        $("#async_json_1").tree({
            data : { 
                type : "json",
                opts : {
                    url : "twodimen.php"
                }
            },
            callback:{
                onselect: function(node,tree){

                }
            }
        });
    });
</script>

どうもありがとう。

4

2 に答える 2

5

ノードがクリックされたときに通常発生するコールバック メソッドonselectを使用できます (スクリプトで選択することもできますが)。

ノード (li) の ID が「node_1234」の形式の場合:

<script type="text/javascript" >
 $(function () { 
  $("#async_json_1").tree({
   data : { 
    type : "json",
    opts : {
     url : "twodimen.php"
    }
   },
   callback: {
      onselect: function(node, tree) {
         var id = $(node).attr("id").split("_")[1]; // that is 1234
         $.ajax({
            url: "your/url",
            data: "id="+id,
            success: function(data){
               alert("Great");
            }
         });
      }
   }
  });
 });
</script>

必要なことを行うためのさらに簡単な方法もあることに気付きました。

<script type="text/javascript" >
 $(function () { 
  $("#async_json_1").tree({
   data : { 
    type : "json",
    opts : {
     url : "twodimen.php"
    }
   }
  });
  $(".tree a").live("click", function(e) {
     // your code here
  }) 
 });
</script>
于 2010-02-12T14:27:57.497 に答える
0
.delegate("a","click", function(e) {
         console.log($(this).parent().attr("id").split("_")[1]); //get ID of clicked node
  })
于 2011-06-16T12:26:11.553 に答える