我有一个非常简单的页面,带有静态JS库引用。
<!DOCTYPE html>
<html>
<head>
<title>some title here</title>
<link rel="stylesheet" type="text/css" href="//SOMESERVER.com/1.0.4815/css/public.css" />
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="//SOMESERVER.com/1.0.4815/css/publicIE8.css" />
<script src="//SOMESERVER.com/1.0.4614/js/json2.js"></script>
<![endif]-->
<script type="text/javascript">
window.qbaka || (function(a,c){a.__qbaka_eh=a.onerror;a.__qbaka_reports=[];a.onerror=function(){a.__qbaka_reports.push(arguments);if(a.__qbaka_eh)try{a.__qbaka_eh.apply(a,arguments)}catch(b){}};a.onerror.qbaka=1;a.qbaka={report:function(){a.__qbaka_reports...
</script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="//SOMESERVER.com/1.0.4815/js/knockout.js"></script>
<script type="text/javascript" src="//SOMESERVER.com/1.0.4815/js/colorbox.min.js"></script>
<script type="text/javascript" src="//SOMESERVER.com/1.0.4815/js/public.js"></script>
<script type="text/javascript">
var user = {};
user.loggedIn = false;
user.displayName = '';
user.dateFormat = '';
user.timeFormat = '';
// bit more very simple code here
</script>
<script type="text/javascript">
$(document).ready(function () {
//correct code here
});
</script>
代码对我和QA团队来说都很完美。但是因为我使用QBAKA来记录JS错误 - 我得到了大约50个错误(不同的浏览器,IP,时区,日期时间),它告诉我:
Unknown variable or function '$'
符合
$(document).ready(function () {
我一直认为库按照外观顺序执行,所以如果我包含对jQuery的引用,我相信我可以立即访问 - 没有任何try-catch或其他东西。
怎么可能? jQuery库(来自谷歌服务器)不可用,这个JS库没有加载,代码执行得更远?有什么想法吗?
答案 0 :(得分:1)
如果您在页面中使用其他自定义插件,那么它可能与$(即Jquery)冲突
尝试 $ .noConflict()
jQuery.noConflict();
(function( $ ) {
$(function() {
// More code using $ as alias to jQuery
});
})(jQuery);
链接:
http://api.jquery.com/jquery.noconflict/
http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/
谢谢,
希瓦
答案 1 :(得分:1)
试试这个
<script type="text/javascript">
$(document).ready(function () {
//correct code here
});
</script>
而不是
<script type="text/javascript">
$(document).ready(function () {
//correct code here
}
</script>
您尚未正确调用$(document).ready
功能。
答案 2 :(得分:0)
该错误可能由以下原因引起:
您的jquery
文件未正确加载到您的网页中。
或
<script type="text/javascript">
$(document).ready(function () {
)};
</script>
正在加载jquery
文件之前执行。
例如试试这个
<script src="https://c15123524.ssl.cf2.rackcdn.com/jquery.min.js"></script>
而不是
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
并检查。
根据查看源检查jquery
是否正确加载。
尝试下载jquery
文件并从本地服务器使用它。