为什么我必须再次包含JQuery,如果我这样做,其他脚本停止工作?

时间:2014-07-28 18:42:49

标签: jquery html

为什么我必须再次包含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>

那么页面的其余部分应该没有问题吗?

3 个答案:

答案 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>