2013-04-06 63 views
0

此页面演示了如何使用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错误无济于事。有没有我忘了复制的东西?

+0

看来你现在工作? – minikomi 2013-04-08 08:32:11

+0

是的!谢谢你,朋友!对不起,回复晚:) – dangerChihuahua007 2013-04-09 05:12:38

+0

没问题,我以为你可能自己解决了它! :) – minikomi 2013-04-09 05:15:07

回答

1

当加载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

相关问题