我在index.html文件中有这段代码:
$(function(){
$('a#link').live('click', function(e){
$("div#element").load("file.html");
});
});
在file.html中,我在顶部有这个代码
<script src="file.js" type="javascript"></script>
当我点击链接时,文件加载正常,但是(根据firebug)JavaScript文件没有加载。有谁知道为什么?我尝试将脚本标记放在index.html文件中,但它不能像那样工作。
答案 0 :(得分:3)
尝试在div中加载页面后加载页面脚本,如下所示:
$(function(){
$('a#link').live('click', function(e){
$("div#element").load("file.html", function(){
$.getScript("file.js", function(){
// second page's scripts are loaded...
});
});
});
});
一种更简单的解决方法, Pointy陈述,要么修复type
属性,要么省略它。
答案 1 :(得分:2)
如果您需要加载脚本,则可以使用getScript方法
答案 2 :(得分:0)
使用javascript加载html时,通常需要删除html head和body标签以使javascript触发。我想这里也提到了这一点 jQuery .load() call doesn't execute javascript in loaded html file
答案 3 :(得分:0)
问题在于,当您使用“.load()”这样的脚本时,如果没有“type”属性,jQuery将只运行它们,或者“type”属性具有精确值“text / javascript”。还有别的东西,它完全被忽略了。
你的脚本对于该属性只有“javascript”,所以它被抛弃了。