Jquery jstree中没有发生ajax请求
我试图通过单击父节点(类别)来获取子节点(在我的例子中是子类别)。但我看不出在我的案例中发生了ajax请求。我使用了这个网站的解决方案-()。下面是我的jstree代码-Jquery jstree中没有发生ajax请求,jquery,jstree,Jquery,Jstree,我试图通过单击父节点(类别)来获取子节点(在我的例子中是子类别)。但我看不出在我的案例中发生了ajax请求。我使用了这个网站的解决方案-()。下面是我的jstree代码- /** * menu tree generation */ $("#menu_tree") .bind("open_node.jstree", function (e, data) { // this binding will collapse all nodes whenever user expands any
/**
* menu tree generation
*/
$("#menu_tree")
.bind("open_node.jstree", function (e, data) { // this binding will collapse all nodes whenever user expands any single node
data.rslt.obj.siblings().filter(".jstree-open").each(function () {
data.inst.close_node(this);
});
})
.jstree({
"json_data": {
"ajax": {
"url": base_url + "draw/get_child"
}
},
"types": { // this will let user to expand or collapse node by clicking on the node title
"types": {
"default": {
"select_node": function (e) {
this.toggle_node(e);
return false;
}
}
}
},
"core": {
"html_titles": true,
"load_open": true
},
"plugins": ["themes", "json_data", "html_data", "types", "ui"],
"themes": {
"theme": "apple",
"dots": true,
"icons": true
}
});
html部分如下-
<div class="" id="menu_tree" style="width: 500px;z-index: 1; float: right;position: relative;">
<ul class="" style="position: absolute;top: 0px;left: 0px;">
<?php
if (!empty($parent_categories)) {
foreach ($parent_categories as $parent_categories) {
?>
<li id="cat<?php echo $parent_categories->objcat_id; ?>">
<a href="#" class=""><?php echo $parent_categories->category_name; ?></a>
</li>
<?php
}
}
?>
</ul>
</div>
我只是第一次加载父节点,所有子节点都应该由用户单击父节点加载
如果我使用“html_数据”而不是“json_数据”,那么会发生一个请求,我可以看到正在加载的gif,但随后我会得到这个错误“Uncaught error:NotFoundError:DOM Exception 8”,但是如果我使用“json_数据”,那么什么都不会发生,firebug中没有ajax请求
我不明白我做错了什么。。。有什么解决办法吗?试试换衣服
“json_数据”:{
“ajax”:{
“url”:函数(节点){
到
“json_数据”:{
“ajax”:{
缓存:false,
“url”:函数(节点){经过4天的尝试,我发现了问题,我做得不对。我只是用错误的格式从php部分返回数据。现在我修复了格式,它运行良好,而且我忘了使用“jstree closed”类。下面给出了正确的格式(我现在使用的格式)-
$sub_category = $this->object_category_model->get_subcategories_by_category_id($_GET['id']);
if ($sub_category != FALSE) {
foreach ($sub_category as $sub_category) {
$result = '<li class="jstree-closed cat" id="' . $sub_category->objcat_id . '"><a href="#">' . $sub_category->category_name . '</a></li>';
echo $result;
}
}
谢谢大家帮助我。:-试着在jsfiddle.net上做一个演示-这样人们可以更好地帮助你。这很难做到…你能告诉我我应该从请求uri返回什么样的数据,我第一次应该显示什么吗?你能看到什么int firebug?AJAX请求发送了吗?web服务器收到了吗我喜欢它?简化代码。在ajax中只使用url作为开始。不确定“加载\打开”是什么是的。以前从未使用过。@Radek---没有发送ajax请求,这就是问题所在,因为我甚至不知道在哪里可以找到错误…@Radek---我正在尝试通过使用ajax动态单击父节点名称来加载子节点。简化代码。只使用url,不使用任何函数开始。然后开始添加越来越多的子节点你的代码。没有“type”,没有“success”属性,只有简单的“url”。@Radek--我已经按照你说的做了,但仍然没有做任何事情……firebug中没有ajax请求。请检查我编辑的问题描述代码
$sub_category = $this->object_category_model->get_subcategories_by_category_id($_GET['id']);
if ($sub_category != FALSE) {
foreach ($sub_category as $sub_category) {
$result = '<li class="jstree-closed cat" id="' . $sub_category->objcat_id . '"><a href="#">' . $sub_category->category_name . '</a></li>';
echo $result;
}
}
"html_data" : { //generating child nodes of selected parent node dynamically using ajax
"ajax" : {
"url" : base_url + "draw/get_child",
"data" : function (n) {
return {
id : n.attr ? n.attr("id") : 0
};
}
}
}