错误代码
问题描述:treeview的nodeSelected事件注册失败,点击菜单树任意一节点都没反应
$(function() {
$.ajax({
url : "/getMenu.do",
data : JSON.stringify({"username":"admin"}),
success : function(data){
$('#treeview1').treeview({});
},
error : function(data){
}
});
$('#treeview1').on('nodeSelected',function(event,data){});
});
原因分析:treeview的选择事件注册放在页面初始化函数体的外面,而treeview的初始化函数放在页面初始化函数体的里面。异步调用里面的treeview的初始化明显要晚于treeview的事件注册,所以注册事件不生效,必须要初始化后,才能注册事件,否则无效
解决方案:treeview的选择事件注册和treeview的初始化函数都放在页面初始化函数体的里面
$(function() {
$.ajax({
url : "/getMenu.do",
data : JSON.stringify({"username":"admin"}),
success : function(data){
$('#treeview1').treeview({});/*****改动的地方*****/
$('#treeview1').on('nodeSelected',function(event,data){});/*****改动的地方*****/
},
error : function(data){
}
});
});