这有效:
$(function(){
$.ajax({
url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
async: false,
dataType: "script",
});
});
然而,这不是:
$("a#trigger").click(function(){
$.ajax({
url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
async: false,
dataType: "script",
});
});
这是一个网站(不是我的)的季节性黑客,所以它不一定是完美的。只需要能够在点击时加载外部.js文件。
谢谢:)
答案 0 :(得分:3)
您删除了“DOM ready”代码。把它放回来它应该再次工作。
$(function() {
$("a#trigger").click(function(){
$.ajax({
url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
async: false,
dataType: "script",
});
});
});
当您将脚本放在页面顶部时,它会立即运行,而不是等待页面的其余部分加载。
通过在DOM就绪处理程序中绑定处理程序,它将在文档加载之前运行。
此外,请确保您的选择器与您的目标元素正确匹配。
答案 1 :(得分:0)
我尝试了您的演示,问题在代码本身中进行了解释:
默认情况下在body onload()之后初始化(通过addEventHandler() 在底部调用。)要自定义属性,请在下面编辑或覆盖 此脚本运行后的配置(但在body.onload 之前), 例如。 snowStorm.snowStick = false;
您的问题是,在第二个场景中,您在页面加载完成后加载脚本,因此您的脚本永远不会被初始化。
[更新]我已经设置了一个现场演示。比较:
两者之间的唯一区别是左侧设置(DOM ready vs. onload
)