我怎么不能得到这个PJAX例子的工作?
问题描述:
此页面演示了如何使用PJAX在D3加载外部HTML文件: https://gist.github.com/mbostock/1367999我怎么不能得到这个PJAX例子的工作?
我做了一个这样的精确副本: https://dl.dropboxusercontent.com/u/1531353/Misc/Docudocker/trialpjax/trial.html
然而,我的版本是行不通的。当我点击一个链接(而不是将html加载到页面上)时,出现DOM错误。我试图使用Chrome控制台找出究竟是什么导致DOM错误无济于事。有没有我忘了复制的东西?
答
当加载pjax("ul li a", "#main");
的content
变量设置为 “#main”
所以,在这个函数:
function load(href) {
d3.html(href, function(fragment) {
var target = d3.select(content).node();
target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
pjax(links, content); // reapply
});
}
在行:
target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
它寻找在加载的文档片段内的#main
的内容。
但是,在你的情况下,没有#main
所以它被设置为空。当你尝试用null调用replaceChild时,你会遇到你遇到的错误。
要解决这个问题,请将您的其他页面设置为每个页面上的#main
。
看来你现在工作? – minikomi 2013-04-08 08:32:11
是的!谢谢你,朋友!对不起,回复晚:) – dangerChihuahua007 2013-04-09 05:12:38
没问题,我以为你可能自己解决了它! :) – minikomi 2013-04-09 05:15:07