2014-09-12 65 views
0

在jstree中我有兩個函數用於選擇和取消選擇,我希望它是一個點擊事件。如何調用不同的事件選擇並單擊jstree(vakata)

$(function() { 
    $('#tree_folder').on('deselect_node.jstree Event', function (e, data) { 
     var item_id = data.node.id; 

     setPermission(item_id, $role, 1); 
    }); 
}); 

$(function() { 
    $('#tree_folder').on('select_node.jstree Event', function (e, data) { 
     var item_id = data.node.id; 

     setPermission(item_id, $role, 0); 
    }); 
}); 

我用這兩個事件的選擇和取消但這些工作,甚至點擊一個節點。當我點擊一個節點(不是複選框)時,它會調用選擇或取消選擇事件,並將檢查添加或刪除到節點。 如何在不選擇或取消選擇的情況下爲jstree編寫單擊事件的函數?

回答

0

在您的事件處理程序中,您可以檢查單擊的元素是否是您的複選框。

This fiddle在big div上有一個偶數監聽器,但只在用戶點擊div內的li而不是div時才執行功能。

就你而言,這聽起來像你想檢查e,看看它是否是複選框,然後才調用你的setPermission方法,否則什麼都不做。

的JavaScript

function handler(event) { 
    var target = $(event.target); 
    if (target.is("li")) { 
     target.children().toggle(); 
    } else { 
     //alert('target is not li'); 
    } 
} 
$("div").click(handler).find("ul ul").hide(); 

HTML

<div style="padding:100px;background-color:wheat;"> 
    <ul> 
     <li>item 1 
      <ul> 
       <li>sub item 1-a</li> 
       <li>sub item 1-b</li> 
      </ul> 
     </li> 
     <li>item 2 
      <ul> 
       <li>sub item 2-a</li> 
       <li>sub item 2-b</li> 
      </ul> 
     </li> 
    </ul> 
</div> 
相關問題