好吧,这只是让我困惑。 第一一些背景:JQuery键入事件不能在外部js文件中工作
我创建了一个HTML文件(它实际上是一个PHP文件,但PHP只是为表单验证),我决定建立一些JavaScript做就如复飞一些验证,如果用户名就已经已被使用。所有的工作都很好。然后我决定我可能会在网站的其他部分使用此代码,所以我只是开始搞乱拿着代码的外部js文件。
在原始HTML代码:
<script type="text/javascript">
$(document).ready(function(){
if($("#userN").val() == ""){
$("#testUserName").html("");
}else{
ajax_search();
}
$("#userN").focusout(function(){
ajax_search();
});
$("#userN").keyup(function(){
ajax_search();
});
});
</script>
ajax_search()只发送给一个PHP文件的请求与所述用户N输入字段中的文本以测试数据。
所以我把那个和ajax_search()函数复制到了一个test.js文件中,我确信先调用了jquery.js文件,然后用它中的代码调用了test.js文件。
奇怪的是。就绪运行
$(document).ready(function(){
alert("test1");
if($("#userN").val() == ""){
$("#testUserName").html("");
}else{
ajax_search();
}
$("#userN").focusout(function(){
ajax_search();
});
$("#userN").keyup(function(){
ajax_search();
});
alert("test2");
});
该代码会显示与Test1的弹出然后用test2的,但事件的内容或KEYUP另一个弹出是行不通的$(文件)。
没有什么我没有工作,直到我把所有代码放回到html文件减去ajax_search函数。这是我想要的,但我不明白为什么这些事件不会起作用。我做错了什么?难道不能这样做?
定义了哪个'ajax_search()'函数?如果我从$(document).ready()运行ajax_search(),那么你可能在包含'test.js' *之前包含任何文件声明'ajax_search()' – Clive
它实际上在test.js文件中。 );它会运行得很好,键盘不起作用。如果我在.keyup()事件中放置了警报(“您按下了一个键!”),它将不会触发。 – Dreadfulgravy
我忘了提及在Firefox的控制台窗口中没有错误,我没有检查其他浏览器。没有错误,所以它只是没有工作。 – Dreadfulgravy