为什么我必须再次包含jQuery以使代码工作,如果它已经在页面的其他地方了?
为什么如果我再次包含它,网站的某些部分会停止工作?
我需要实现的jQuery看起来像这样:
<script type="text/javascript">
$(document).ready(function(){
// Your code goes here
var clearedOnce = false;
document.getElementById("telid01").onfocus =
function () {
if (clearedOnce == false) {
this.value = '';
clearedOnce = true;
}
};
});
</script>
那么为什么我必须包含这样的jQuery agan:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
在它之上使它工作?
它也很奇怪,因为代码位于页面的最底部,只是在
之上</body>
</html>
那么页面的其余部分应该没有问题吗?
答案 0 :(得分:2)
呃...
$(document).ready(function(){});
没有加载jQuery,它只是在jQuery准备就绪时将function(){}
添加到队列中(当浏览器触发一个事件,表明它已经获得了所有需要的内容)< / p>
您加载jQuery的唯一时间是通过脚本标记E.G加载文件的时间
<script type="text/javascript"src="jQuery.js"></script>
我有来自服务器构建系统的页面,其内容中可以有$(document).ready(...
4或5次
如果它导致问题。您的浏览器检查员在控制台中出现了什么问题。通常会出现脚本错误,因为该代码或代码稍后会与您的代码发生冲突
如果存在冲突,请尝试此操作,因为它只使用jQuery并且清除一次已经在一个闭包中,所以它不应该有冲突
(function($){
'use strict';
$(document).ready(function(){
// Your code goes here
var clearedOnce = false;
$("#telid01").on("focus", function () {
if (clearedOnce == false) {
this.value = '';
clearedOnce = true;
}
});
});
})(jQuery.noConflict());
答案 1 :(得分:1)
document.getElementById("telid01").onfocus
如果您正在尝试使用jQuery,那么您做错了。如果不使用$ selector访问元素,则不处理jQuery对象。你正在处理straigt DOM对象。在尝试找出jQuery的错误之前纠正这一点。
您应该使用:
$('#telid01').on('focus', function() {...})
答案 2 :(得分:0)
如果问题与使用相同$
符号的其他库发生冲突。尝试用上面的代码替换上面的JS代码,看看会发生什么:
<script type="text/javascript">
(function($) {
$(document).ready(function(){
// Your code goes here
var clearedOnce = false;
document.getElementById("telid01").onfocus =
function () {
if (clearedOnce == false) {
this.value = '';
clearedOnce = true;
}
};
});
})(jQuery);
</script>