我有以下代码,我正在努力工作。出于某种原因it works fine on JSFiddle,但是当我从服务器提供代码时输入文本框时没有任何反应。为什么会这样?
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js"></script>
<script type="text/javascript">
$('#userInput').keyup(function(){
alert("key up");
});
</script>
</head>
<body>
<input id="userInput" type="text">
</body>
</html>
答案 0 :(得分:3)
您的脚本正在将keyup函数附加到尚不存在的元素。您需要将脚本放在页面底部,或使用$(document).ready(function(){//your code});
答案 1 :(得分:1)
可能是因为你需要将它包装在.ready
函数
$(document).ready(function() {
$('#userInput').keyup(function(){
alert("key up");
});
});
答案 2 :(得分:1)
你的代码应该是dom ready
$(function(){
$('#userInput').keyup(function(){
alert("key up");
});
});
默认情况下,将在第二个下拉列表Frameworks & Extensions
中的onload
部分下的jsfiddle中选择,这意味着脚本框架中的所有脚本只有在加载完整个dom后才会执行。 / p>
但是当我们将该脚本移动到某个页面时,我们需要使用.ready
答案 3 :(得分:1)
您的JS代码在DOM准备好之前执行。将JavaScript置于底部或使用jQuery $(document).ready()
。
答案 4 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#userInput').keyup(function(){
alert("key up");
});
});
</script>
</head>
<body>
<input id="userInput" type="text">
</body>
</html>