我想让jquery隐藏这个div,由于某种原因它不起作用我做错了什么
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
#one{
border:3px solid #00F;
width:50%;
}
#hideme{
border:3px solid #00F;
width:50%;
display:none;
}
</style>
<script type="text/javascript" src="../_root/js/jquery/jquery-1.4.2.js"></script>
<script language="javascript" type="text/javascript">
$("#one").click(function () {
$("#hideme").toggle();
});
</script>
</head>
<body>
<div id="one">
<a href="#">hello</a>
</div>
<div id="hideme">
hi
</div>
</body>
</html>
答案 0 :(得分:16)
你需要:
所以它应该是:
$(document).ready(function() {
$("#one a").click(function() {
$("#hideme").toggle();
});
});
答案 1 :(得分:0)
我在使用ajax时遇到了同样的情况并应用了这个解决方案。 写javascript:void(0);而不是href值中的'#'。这可以防止您在网址中添加“#”。 在ajax模式下使用时使用.live()。在.toggle()中,将参数传递为效果,如'Drop','slide'等,更多信息在http://jqueryui.com/toggle/。
$(document).ready(function(){
$('#one a').live('click', function(){
$('#hideme').toggle('Drop');
return false;
});
});
申请return false;最后阻止我重新加载页面。
仅回答知识。
答案 2 :(得分:0)
你没有将你的javascript包装在$(document).ready(function(){})
等中,jQuery正试图找到一个尚不存在的元素!