2014-09-12 66 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> 
相关问题