在我的网站上,我在每篇文章下都有可点击的隐藏元标签,如页面浏览量或谷歌请求。
这是我使用的代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').click(function(){
$(".slidingDiv").slideToggle();
});
});
</script>
这个PHP代码:
<p class="postmetadata"><a href="javascript:;" class="show_hide">[Show/hide meta data]</a></p>
<div class="slidingDiv">
<p class="postmetadata">Aufrufe: <?php if(function_exists('the_views')) { the_views(); } ?> </p>
<p class="postmetadata"><?php if(function_exists('stt_terms_list')) echo stt_terms_list() ;?></p>
<p class="postmetadata"><?php if (function_exists('backlinks')) backlinks(); ?></p>
<br>
</div>
我使用Wordpress。问题是,如果我点击"显示/隐藏元数据",每篇文章都会显示元数据。我只想要我点击的文章的元数据。这是我的网站。
你必须点击德语"[Zeige/VersteckeMeta-Daten]",它等于"[Show/hide Meta-data]"。
使用jQuery方法.next(),这将立即工作:
$('.show_hide').click(function(){
$(this).next().slideToggle();
});
使用jQuery方法.siblings(),即使重新排列元素的顺序,这也会起作用:
$('.show_hide').click(function(){
$(this).siblings('.slidingDiv').slideToggle();
});
使用jQuery方法.closest(),即使重新排列元素深度,这也能工作:
$('.show_hide').click(function(){
$(this).closest('.span-8').find('.slidingDiv').slideToggle();
});
另外,对于jQuery/Prototype冲突,请参见:Prototype和jQuery在一起?
最简单的解决方案是创建一个临时上下文:
(function($){
$('.show_hide').click(function(){
$(this).siblings('.slidingDiv').slideToggle();
});
}(jQuery));