我想点击一个div让他的孩子出现。 问题是我有一长串的那些div。每个div都有一个孩子。 在下面,我想点击div"礼仪"显示或隐藏他的孩子div" detail"。
<div class="etiquette">
<span class="date">13-07</span>
<span class="titre">LOREM IPSUM 1</span>
<div class="detail"><p>lorem ipsum 1</p></div>
</div>
<div class="etiquette">
<span class="date">14-07</span>
<span class="titre">LOREM IPSUM 2</span>
<div class="detail"><p>lorem ipsum 2</p></div>
</div>
<div class="etiquette">
<span class="date">14-07</span>
<span class="titre">LOREM IPSUM 3</span>
<div class="detail"><p>lorem ipsum 3</p></div>
</div>
我想使用的脚本是:
$(document).ready(function() {
$(".etiquette").children(".detail").css("display", "none");
$(this).toggle(function() {
alert("clicked");
$(this).children("div.detail").css("display", "block");
}, function() {
alert("clicked again");
$(this).children("div.detail").css("display", "none");
});
});
以下效果很好:
$(this).toggle(function() {
alert("clicked");
});
以下也很有效。但它显示或隐藏所有div&#34; detail&#34;而且不仅是点击的div的孩子:
$(this).toggle(function() {
alert("clicked");
$(".etiquette").children("div.detail").css("display", "block");
}, function() {
alert("clicked again");
$(".etiquette").children("div.detail").css("display", "none");
});
});
我做错了什么? 在此先感谢您的帮助。
答案 0 :(得分:1)
你的$(this)指向我自己的文件。
试试这个,
$(document).ready(function() {
$(".etiquette").children(".detail").css("display", "none");
$(".etiquette").click(function(){
$(this).children("div.detail").toggle();
});
});
我没有测试代码。希望它能奏效。
答案 1 :(得分:0)
$(".etiquette").children(".detail").css("display", "none");
$('.etiquette').click(function() {
$(this).find('.detail').toggle();
});
<强> jsFiddle example 强>
关于你的代码有什么问题还有很多东西,但是如果你看一下这个例子,你会看到它的作用。第一行隐藏了具有类detail
的所有元素,这些元素是具有类etiquette
的元素的子元素(您有,我保持不变)。下一个代码块将click事件绑定到具有类etiquette
的元素,并使用detail
类切换子元素的显示。
答案 2 :(得分:0)
改变这个:
$(this).toggle(function() {
为:
$('.etiquette').toggle(function() {
此this
引用document
对象而不是.etiquette
元素。
note: as of jQuery 1.7 using toggle mouse event has been deprecated.
答案 3 :(得分:0)
您是否尝试使用.each函数将切换函数绑定到每个div?
例如:
$('.etiquette').each(function(){
$(this).click(function(){
//Enter toggle function here
});
});