Jquery切换不起作用

时间:2010-09-14 10:38:10

标签: jquery html css hide toggle

我想让jquery隐藏这个div,由于某种原因它不起作用我做错了什么

http://stat-me.com/jq.html

<!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>

3 个答案:

答案 0 :(得分:16)

你需要:

  1. 使用document.ready
  2. 选择 #one div下的锚,而不是div本身
  3. 所以它应该是:

    $(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正试图找到一个尚不存在的元素!