为什么这个简单的jQuery不起作用?

时间:2012-03-03 15:59:11

标签: javascript jquery html css

jQuery的:

<script type="text/javascript"
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"/>
$(document).ready({
   $(".title").click(function(){
      var descID = $(this).attr("id");
      var newID = "#"+descID+"d";
      $(newID).slideToggle('slow');
   });
});

HTML:

<span id="3" class="title">title</span>
<span id="3d" class="description">description</span>

CSS:

.description {
    display: none;
}

不是jQuery / javascript专家。我错过了什么?我正在尝试使用适当的description滑动切换,同时点击正确的title。现在我没有看到任何事情发生。

4 个答案:

答案 0 :(得分:5)

你错过了一个函数:$(document).ready(

应该是:

<html>
<head>
...
    <style type="text/css">
        .description {
            display: none;
        }
    </style>
</head>
<body>
<span id="3" class="title">title</span>
<span id="3d" class="description">description</span>
<script type="text/javascript">
    $(document).ready(function() {
        $(".title").click(function () {
            var descID = $(this).attr("id");
            var newID = "#" + descID + "d";
            $(newID).slideToggle('slow');
        });
    });
</script>
</body>
</html>

答案 1 :(得分:2)

有相当多的错误。内联更正和记录。

<script type="text/javascript"
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script> <!-- script tags shouldn't self close, non-standard -->
<script type="text/javascript"> <!-- open script tag for inline scripts -->
$(document).ready(function() { <!-- need function definition for ready event handler
   $(".title").click(function(){
      var descID = $(this).attr("id");
      var newID = "#"+descID+"d";
      $(newID).slideToggle('slow');
   });
});
</script> <!-- end script tag -->

答案 2 :(得分:1)

您忘记了function()部分。正如其他人所指出的那样,一个开始和结束的脚本标签。

<script type="text/javascript">
    $(document).ready( function(){
       $(".title").click(function(){
          var descID = $(this).attr("id");
          var newID = "#"+descID+"d";
          $(newID).slideToggle('slow');
       });
    });
</script>

在此处测试您的网站:jsfiddle

答案 3 :(得分:0)

你需要将一个函数传递给ready,并且你偶然传递一个object-literal。

你可以用它来玩这个例子(我喜欢jsfiddle!) http://jsfiddle.net/hmdrP/

还有一个捷径,$(function() { ... })等同。