我试图使用JQuery隐藏HTML元素(一个h1标签)。它通过onClck()事件调用我的函数时工作。但是当我尝试使用JQuery click()方法隐藏h1元素时,它无法正常工作。我真的很困惑。
<html>
<head>
<script src="jquery-1.10.2.min.js"></script>
<script>
function hideMe(){
$("#h1").hide("slow");
}
</script>
</head>
<body>
<h1 onClick="hideMe()" id="h1">Hello World</h1>
</body>
</html>
<html>
<head>
<script src="jquery-1.10.2.min.js"></script>
<script>
$("#h1").click(function(){
$("#h1").hide("slow");
})
</script>
</head>
<body>
<h1 id="h1">Hello World</h1>
</body>
</html>
http://dzine.us/download/jquery_confuced.zip
请帮我解释为什么上面的代码不起作用。三江源。
答案 0 :(得分:2)
在添加事件侦听器之前,您需要确保DOM is fully loaded,并使用$(document).ready()
执行此操作。或者简称:
$(function(){
$("#h1").click(function(){
$(this).hide("slow");
})
})
而且仅供参考,因为点击函数由#h1
调用,您可以使用$(this)
而不是使用选择器重新创建jQuery集合。
答案 1 :(得分:0)
您需要将绑定包装在DOMReady
函数中,否则在评估脚本时您的元素不存在。
更新如下:
<script>
$(function() {
$("#h1").click(function(){
$("#h1").hide("slow");
});
});
</script>
答案 2 :(得分:0)
它必须在$(document).ready(function() {...})
处理程序中,因为您必须首先加载DOM,然后才能执行jQuery代码(一旦加载DOM)。
$(document).ready(function() {
$("#h1").click(function(){
$("#h1").hide("slow");
});
});