将<script>移动到JS文件</script>

时间:2013-05-25 11:09:35

标签: javascript jquery html

我有jquery在我的HTML中用<script>标记:

写的
  $("#u").focusout(function(){
  $("#u").focus();
});

我想把它移到我的js文件中,所以我把它写在一个JS文件中,放在HTML的head部分:

<script type="text/javascript" src="myJS.js"></script>

但是现在我的jquery函数不起作用了。可能是什么原因?

4 个答案:

答案 0 :(得分:2)

尝试放入$(function(){like

$(function() {
     $("#u").focusout(function(){
          $("#u").focus();
     });
});

检查你的js文件是否正在加载

答案 1 :(得分:1)

这有两个可能的原因(没有看到预览链接,很难告诉你哪个):

在HTML标记中,您需要确保在JavaScript文件之前包含jQuery:

<script src="jquery.js"></script>
<script src="myJS.js"></script>

或者,可能是在页面完全加载之前,您的JavaScript正在“触发”。确保jQuery包含在document.ready函数中是最佳做法。尝试用以下代码替换当前的JavaScript:

$(document).ready(function(){
    $("#u").focusout(function(){
        $("#u").focus();
    });
});

这将确保您的JavaScript在页面准备好之前不会尝试触发(并加载jQuery)。

答案 2 :(得分:1)

试试这个

jQuery(document).ready(function() {
 jQuery("#u").focusout(function(){
      jQuery("#u").focus();
 });});

请在jquery lib

之后加载此文件

答案 3 :(得分:0)

首先,你必须在你自己的js文件之前包含jQuery js-file 。 然后,如果您的js文件包含在#u - 元素之前,则jquery将搜索不存在的元素。为避免这种情况,您应将此代码放在js文件中:

$(function() {
   $("#u").focusout(function(){
      $("#u").focus();
   });
});

$(function(){/*code*/});使jQuery等待网站满载(以及你的#u元素),因此jQuery可以找到该元素,并且可以挂钩焦点处理程序。