我有jquery在我的HTML中用<script>
标记:
$("#u").focusout(function(){
$("#u").focus();
});
我想把它移到我的js文件中,所以我把它写在一个JS文件中,放在HTML的head部分:
<script type="text/javascript" src="myJS.js"></script>
但是现在我的jquery函数不起作用了。可能是什么原因?
答案 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可以找到该元素,并且可以挂钩焦点处理程序。