简体   繁体   English

使用jQuery切换显示/隐藏

[英]Toggle show/hide with jQuery

( function( $ ) {

var $f = $;

$('.entry-content').hide();

$f(function(){
        $f(".entry-title" ).toggle(
            function() {
                $f(this).parents(".post").children('.entry-content').slideUp('fast');
            },
            function() {
                $f(this).parents(".post").children('.entry-content').slideDown('fast');
            }
        );
});

} )( jQuery );

JSFIDDLE 的jsfiddle

Pretty basic I guess but, I would like to click on the .entry-title links to display the content with the .entry-content class. 非常基本我想但是,我想点击.entry-title链接来显示.entry-content.entry-content However, it seems I have to click on the link two times for the content to expand. 但是,似乎我必须点击链接两次才能展开内容。 Why is this and how can this be fixed? 这是为什么以及如何解决这个问题? Not sure what I am doing wrong here. 不知道我在这里做错了什么。

Also, is there a way to close the previously opened div when another one opens? 另外,有没有办法在另一个打开时关闭之前打开的div? Sort of like an accordion. 有点像手风琴。

Use slideToggle() for toggle between them. 使用slideToggle()在它们之间切换。

toggle event was deprecated in jQuery 1.8 and removed in jQuery 1.9 . toggle event在jQuery 1.8中已弃用,并在jQuery 1.9中删除。

 var $ele = $('.entry-content').hide(); // hide initially $(".entry-title").click(function(e) { // bind click event handler e.preventDefault(); // prevent default click event handler var $ele1 = $(this).parents(".post").children('.entry-content').slideToggle('fast'); // toggle the animation $ele.not($ele1).slideUp(); // slide up remaining }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="post"> <p class="destaques-data">2010-03-10</p> <h3><a href="#" class="entry-title">Mauris aliquet mattis metus</a></h3> <p>Requerente: <a href="http://localhost:8888/aspp/requerente/ornare/" rel="tag">Ornare</a> <a href="http://localhost:8888/aspp/requerente/pede/" rel="tag">Pede</a> Localização: <a href="http://localhost:8888/aspp/localizacao/matosinhos/" rel="tag">Matosinhos</a> Tipologia: <a href="http://localhost:8888/aspp/tipologia/amet/" rel="tag">Amet</a> <a href="http://localhost:8888/aspp/tipologia/elit/" rel="tag">Elit</a> </p> <div class="entry-content"> <p>Aliquam aliquet, est a ullamcorper condimentum, tellus nulla fringilla elit, a iaculis nulla turpis sed wisi. Fusce volutpat. Etiam sodales ante id nunc. Proin ornare dignissim lacus. Nunc porttitor nunc a sem. Sed sollicitudin velit eu magna. Aliquam erat volutpat. Vivamus ornare est non wisi. Proin vel quam. Vivamus egestas. Nunc tempor diam vehicula mauris. Nullam sapien eros, facilisis vel, eleifend non, auctor dapibus, pede.</p> </div> </div> <div class="post"> <p class="destaques-data">2006-11-08</p> <h3><a href="#" class="entry-title">Cras aliquam massa ullamcorper sapien</a></h3> <p>Requerente: <a href="http://localhost:8888/aspp/requerente/enim/" rel="tag">Enim</a> Localização: <a href="http://localhost:8888/aspp/localizacao/matosinhos/" rel="tag">Matosinhos</a> Tipologia: <a href="http://localhost:8888/aspp/tipologia/ipsum/" rel="tag">Ipsum</a> </p> <div class="entry-content"> <p>Pellentesque vel dui sed orci faucibus iaculis. Suspendisse dictum magna id purus tincidunt rutrum. Nulla congue. Vivamus sit amet lorem posuere dui vulputate ornare. Phasellus mattis sollicitudin ligula. Duis dignissim felis et urna. Integer adipiscing congue metus. Nam pede. Etiam non wisi. Sed accumsan dolor ac augue. Pellentesque eget lectus. Aliquam nec dolor nec tellus ornare venenatis. Nullam blandit placerat sem. Curabitur quis ipsum. Mauris nisl tellus, aliquet eu, suscipit eu, ullamcorper quis, magna. Mauris elementum, pede at sodales vestibulum, nulla tortor congue massa, quis pellentesque odio dui id est. Cras faucibus augue.</p> </div> </div> 

Just change your function like this: 只需改变你的功能:

$f(".entry-title" ).toggle(
            function() {
                $f(this).parents(".post").children('.entry-content').slideDown('fast');
            },
            function() {
                $f(this).parents(".post").children('.entry-content').slideUp('fast');
            }
        );

It will work. 它会工作。

This JSFiddle shows working code, it's up to you if you want to add ID's or make use of classes instead or add the code you had (something about parent-child relationship), but this is the basic to make such slide work: 这个JSFiddle显示了工作代码,如果你想添加ID或者使用类代码或添加你拥有的代码(关于父子关系的东西),这取决于你,但这是使这样的幻灯片工作的基础:

 $(document).ready(function() { $(".entry-content").hide(); $(".entry-title").click(function() { if ($(".entry-content").is(":hidden")) { $(".entry-content").slideDown(); } else { $(".entry-content").slideUp(); } }); return false; /* or e.preventDefault(); */ }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="post"> <p class="destaques-data">2010-03-10</p> <h3><a href="#" class="entry-title">Mauris aliquet mattis metus</a></h3> <p>Requerente: <a href="http://localhost:8888/aspp/requerente/ornare/" rel="tag">Ornare</a> <a href="http://localhost:8888/aspp/requerente/pede/" rel="tag">Pede</a> Localização: <a href="http://localhost:8888/aspp/localizacao/matosinhos/" rel="tag">Matosinhos</a> Tipologia: <a href="http://localhost:8888/aspp/tipologia/amet/" rel="tag">Amet</a> <a href="http://localhost:8888/aspp/tipologia/elit/" rel="tag">Elit</a> </p> <div class="entry-content"> <p>Aliquam aliquet, est a ullamcorper condimentum, tellus nulla fringilla elit, a iaculis nulla turpis sed wisi. Fusce volutpat. Etiam sodales ante id nunc. Proin ornare dignissim lacus. Nunc porttitor nunc a sem. Sed sollicitudin velit eu magna. Aliquam erat volutpat. Vivamus ornare est non wisi. Proin vel quam. Vivamus egestas. Nunc tempor diam vehicula mauris. Nullam sapien eros, facilisis vel, eleifend non, auctor dapibus, pede.</p> </div> </div> <div class="post"> <p class="destaques-data">2006-11-08</p> <h3><a href="#" class="entry-title">Cras aliquam massa ullamcorper sapien</a></h3> <p>Requerente: <a href="http://localhost:8888/aspp/requerente/enim/" rel="tag">Enim</a> Localização: <a href="http://localhost:8888/aspp/localizacao/matosinhos/" rel="tag">Matosinhos</a> Tipologia: <a href="http://localhost:8888/aspp/tipologia/ipsum/" rel="tag">Ipsum</a> </p> <div class="entry-content"> <p>Pellentesque vel dui sed orci faucibus iaculis. Suspendisse dictum magna id purus tincidunt rutrum. Nulla congue. Vivamus sit amet lorem posuere dui vulputate ornare. Phasellus mattis sollicitudin ligula. Duis dignissim felis et urna. Integer adipiscing congue metus. Nam pede. Etiam non wisi. Sed accumsan dolor ac augue. Pellentesque eget lectus. Aliquam nec dolor nec tellus ornare venenatis. Nullam blandit placerat sem. Curabitur quis ipsum. Mauris nisl tellus, aliquet eu, suscipit eu, ullamcorper quis, magna. Mauris elementum, pede at sodales vestibulum, nulla tortor congue massa, quis pellentesque odio dui id est. Cras faucibus augue.</p> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM