Jstree ait (jQuery eklentisi) asenkron listesine click olayı nasıl eklenir?

1 Cevap php

I jstree 's asenkron liste öğeleri için tıklayın etkinlik eklemek istiyorum.

İdeal sonuç: i jstree öğeleri tıkladığınızda, öğenin içeriği parametre olarak bir sql sorgu transfer edilecektir, ve sonra, sorgu yürütülür ve aynı sayfada veya başka bir sayfaya bir sonuç kümesi görüntüler .

Ben bunu uygulamak için nasıl bilmiyorum da. Ben jquery.tree.js aşağıdaki kodu bulundu. Ve ben olayı değiştirmek gerektiğini düşünüyorum. Ama nasıl bilmiyorum. Eğer kod bakın ve bana bazı önerilerde veya rehberlik verebilir misiniz?

$("#" + 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;
  })

Sayfa kodu:

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

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

Çok teşekkürler.

1 Cevap

Sen düğüm tıklandığında (genellikle de bir komut dosyası tarafından seçebilirsiniz olsa bile) gerçekleşir çağrı yöntemini onselect kullanabilirsiniz

Lütfen düğümleri (li) formu "node_1234" bir kimliği varsa, o zaman:

<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>

Ben sadece ne gerek yapmanın daha basit bir yol da var ki, fark:

<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>