我正在使用以下代码
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
//Document ready
$(document).ready(function(){
//Show info
$('a.getinfo').live("click", function(event){
event.preventDefault();
$(this).css("display","none");
$(this).next('.info').css("display","block");
}
);
$('a.getback').live("click", function(event){
event.preventDefault();
$(this).css("display","none");
$(this).prev('a.getinfo').css("display","block");
}
);
});
</script>
<style>
.info {
display: none
}
</style>
<ul>
<li>
<a href="#" class="getinfo">
<img src="http://s13.postimage.org/7xkjh8991/image.jpg">
<span class="sticker opacity">get info</span>
</a>
<div class="info">
<a href="#" class="getback">
some info
<span class="sticker-back opacity">back</span>
</a>
</div>
</li>
<li>
<a href="#" class="getinfo">
<img src="http://s13.postimage.org/7xkjh8991/image.jpg">
<span class="sticker opacity">get info</span>
</a>
<div class="info">
<a href="#" class="getback">
some info
<span class="sticker-back opacity">back</span>
</a>
</div>
</li>
<li>
<a href="#" class="getinfo">
<img src="http://s13.postimage.org/7xkjh8991/image.jpg">
<span class="sticker opacity">get info</span>
</a>
<div class="info">
<a href="#" class="getback">
some info
<span class="sticker-back opacity">back</span>
</a>
</div>
</li>
</ul>
应该做什么:
问题:
答案 0 :(得分:2)
你没有做出正确的选择。以下是适用于您的代码的修改版本:http://jsfiddle.net/ertaD/4/
我已经修改了select以获得最接近的li并且我已经找到了所需的元素。 你正在隐藏.getback,并显示回.info(信息的内容仍然隐藏)
以下是代码:
$('a.getinfo').live("click", function(event){
event.preventDefault();
$(this).css("display","none");
$(this).closest('li').find('.info').css("display","block");
}
);
$('a.getback').live("click", function(event){
event.preventDefault();
$(this).parent().css("display","none");
$(this).closest('li').find('.getinfo').css("display","block");
}
);
答案 1 :(得分:0)
不要使用Prev
选择器,因为它不会搜索所有以前的div。试试parent
和children
选择器:
$('a.getinfo').live("click", function(event){
event.preventDefault();
$(this).hide();
$(this).parent().children('.info').show();
}
);
$('a.getback').live("click", function(event){
event.preventDefault();
$(this).parent().hide();
$(this).parent().parent().children('.getinfo').show();
}
);
注意我还使用Show
和Hide
方法比设置css属性更容易
由于我不想在.parent().parent()
使用双父使用,因此在这个实例中使用closest
选择器来查找与给定选择器查询匹配的第一个父类更合适这样:
$(this).closest("li").children('.getinfo').show();