2012-03-03 86 views
1

jQuery的:为什么不是这个简单的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。现在我没有看到任何事情发生。

+0

哈哈,是的错字。感谢您的发现。 – n0pe 2012-03-03 16:01:33

+2

这实际上正是你的HTML看起来的样子,那个自动关闭的''并自动关闭脚本标签。谢谢你。 – n0pe 2012-03-03 16:11:53

+0

jQuery脚本标记被关闭了吗?与'/>'。另一个脚本标记确实缺失。好点的:) – RvdK 2012-03-03 22:06:38

+0

@PoweRoy一些浏览器不会处理一个自动关闭脚本标记。这个标准,包括HTML 4和HTML 5,都表明需要关闭''标签。 – tvanfosson 2012-03-03 22:52:27

5

你失踪后的函数:$(文件)。就绪(

应该是:

<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> 
+0

我添加了'function()',当点击'title'时我还没有看到任何事情发生。我也改变了我的'身份证',以便他们以字母而不是数字开头。 – n0pe 2012-03-03 16:06:17

+0

@MaxMackie尝试我刚刚更新的示例。 – ebaxt 2012-03-03 16:07:33

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

+0

奇怪。它在jsfiddle中完美工作,但相同的代码无法在我的网站上工作。谢谢。 – n0pe 2012-03-03 16:08:32

+0

的确我错过了,你忘了你的jQuery代码周围的标签 – RvdK 2012-03-03 22:04:21

0

您需要传递一个函数以准备好,并且您意外传递了一个对象文字。

您可以使用此玩弄的例子(我爱的jsfiddle!) http://jsfiddle.net/hmdrP/

还有一个快捷方式,$(function() { ... })这是等价的。

相关问题