我使用jQuery.jsTree构建了一个菜单,每个项目都应包含指向特定页面的链接。使用jsTree,由于阻止了
的标准行为,因此无法单击这些链接<a href="index.php?content=example" ... >....</a>
链接(这实际上是我的一个链接的示例.index.php是我的标准页面,只是内容将被替换)。为了解决这个问题,我找到了这个解决方案:
jQuery(".tree").bind("select_node.jstree", function (e, data) {
document.location = data.rslt.obj.children("a").attr("href");
});
这个解决方案部分适用于我,这意味着点击的链接可以工作,但在打开的窗口中,Firebug告诉我jQuery没有定义。是否有可能在document.location上浏览器“忘记”库导入(正如我所提到的,我留在index.php页面上只是替换内容)?
另一个问题是:是否有人可能知道更好的解决方案,无需编辑库本身就可以在jsTree中启用链接?
提前感谢!
答案 0 :(得分:1)
如果您的链接最初看起来像:
<a href="index.php?content=example" ... >....</a>
您希望将内容加载到ID为maincontent
您可以执行以下操作:
$(".tree a").each(function(){
var $this = $(this);
$this.click(function(){
$("#maincontent").load($this.href, function(){
// this callback functions fires once load is complete,
// incase you need to do post-load operations
});
return false;
});
});
这将byposs将新页面加载为普通链接,并通过AJAX获取页面并将返回的HTML加载到ID为DIV
的{{1}}。
代码未经测试,但我过去已经这样做了,所以应该按原样运作。