2016-02-26 83 views
1

我想创建一个2类div与类之间的切换:前面和后面。两者都在.entry-footer。它是好的。但最后一步是,它需要恢复正常:前面可见,后面隐藏...并不是所有的背部应该只隐藏klikobj(= clikobject).... 任何建议,以优化此代码?隐藏显示格前,后每格行为功能/切换jquery

https://jsfiddle.net/ontwerp73/osg8up7a/2/#&togetherjs=UojQmsnD2F

$('.entry-footer').on('click', function(event) { 
    var klikobj = event.target; 
    $(klikobj).closest('.front').hide(); 
    $(klikobj).next('.back').show(); 
    $('.back').on('click', function(event) { 
     $(klikobj).closest('.front').show(); 
     $(klikobj).next('.back').hide(); 
    }); 
}); 

HTML基础:

<footer class="entry-footer"> 
<div class="front" style="display: block;"> 
<br>Titel: Mr Robot<br>Regisseur: mr Bean<br>Producent: Spielberg<br>Info: extra extra! extra extra! extra extra! extra extra! <br>Productiejaar: 2017    </div> 
<div class="back" style="display: none;"> 
<br>Beschrijving: Een robot is een programmeerbare machine die verschillende taken uit kan voeren. Hierin verschilt hij van een numerieke machine, die is geprogrammeerd voor één taak. In de praktijk betekent....</div> 
</footer> 

回答

1

为什么不使用切换()函数?

$('.entry-footer').click(function() { 
    $(this).children().toggle(); 
}); 

工作版本的多个div:

$('.entry-footer').click(function() { 
    var childNum = $(this).children().length; 
    $(this).children().each(function(ind, el) { 
     if ($(this).is(':visible')) { 
      if (ind == childNum - 1){ 
       $(this).siblings(":first").show(); 
       $(this).hide(); 
       return false; 
      } else { 
       $(this).hide(); 
       $(this).next().show(); 
       return false; 
      } 
     } 
    }); 
}); 

jsfiddle

+0

感谢@ amuga3!忘了往前走;-)最有效的... –

+0

一个问题toggle()很适合在2个元素之间切换。但是2+怎么样? :$(this).children()。 ...第一,第二和第三个对象?与:[obj]:[obj]的第n个孩子(2):第n孩子(3)等? –

+1

如果超过2个,则需要另一种方法。你需要超过2? :)你的意思是像前面的中间和后面的元素? – arnuga3