【发布时间】:2012-12-19 07:25:20
【问题描述】:
假设我有如下页面
<html><head></head><body><!--STUFF-->
<script>
if(SomeBooleanVariable) {
$.getScript('js/file.js');
}
</script>
</body></html>
我的 file.js 文件只包含没有包装的原始 jQuery 事件。具体如下:
$(document).on("eventHere", "classHere", function(e) {
//Stuff
});
$(document).on("eventHere", "classHere", function(e) {
//Stuff
});
这根本行不通。当我将 file.js 的内容直接包含到 HTML 中时,它可以正常工作,但是 JS 似乎没有正确包含。我试过把“alert(3);”在 file.js 的顶部,但它不会触发。我尝试了以下方法:
$("head").append("<script src=\"js/file.js\" />");
$(document).append("<script src=\"js/file.js\" />");
-and-
document.write("<script src=\"js/file.js\" />");
【问题讨论】:
-
尝试在
if中的$.getScript之前添加警报?您是否在服务器日志中看到file.js被请求? -
听起来像 eval() 会起作用,但 eval 是邪恶的,所以我有点困惑。
-
在 chrome 中按 F12 选择网络菜单并查看 file.js 是否加载没有任何错误。
-
在什么浏览器上什么操作系统没有这个功能?在我看来,您上面包含的代码与您的文件中的代码完全相同,但是当我尝试使用最新版本的 jQuery (1.8.3) 和一个仅包含警告语句的外部 JavaScript 文件,它工作得非常好。请详细说明您的代码的细节。
-
如果 jQuery 包含在此脚本之前的页面某处,您的代码应该按原样工作。确保 .js 文件的路径正确。
标签: javascript jquery include external