用链接翻转Div

时间:2013-04-27 22:14:00

标签: jquery flip

所以,看看这个: http://maplemountainchorus.org/mandy/index2.html

单击“查看歌曲列表”链接,专辑封面翻转以显示专辑的歌曲列表。链接的名称将更改为“查看相册艺术”。点击“查看相册艺术”链接,相册翻转再次显示前面。链接名称将更改回“查看歌曲列表”。

现在,再次单击“查看歌曲列表”链接。我希望它再次翻转专辑,但事实并非如此。有谁知道如何解决这个问题?

此外,翻转动画显示在div中的其他“隐藏”专辑中。有谁知道如何解决这个问题呢?

这是我的jQuery:

$(function(){

$(".flipPad a.viewSongList").bind("click",function(){
$(".flipbox").flip({
        direction: 'lr',
        color: '#fff',
        content: $(".flipbox").addClass("removeBkgrnd").html('<p>Here is  the song list.</p>'),
        onBefore: function(){$(".flipPad a.viewSongList").html('View Album Art').addClass("viewAlbumArt")},
        onEnd: function(){$(".flipPad a.viewSongList.viewAlbumArt").click(function(){
            $(".flipbox").removeClass("removeBkgrnd").html('');
            $(".flipPad a.viewSongList").removeClass("viewAlbumArt").html('View Song List');

        });
        }
    })
    return false;

});

这是我的HTML:

 <section id="media">
    <div id="buyMusic">
        <div id="musicSlider" class="flexslider" style="background-color:#000;">
              <ul class="slides">
                <li>
                  <div class="flipbox sweetDreams"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
                <li>
                  <div class="flipbox winterWonderland"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
                <li>
                  <div class="flipbox rightCry"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
                <li>
                  <div class="flipbox mandy"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
                <li>
                  <div class="flipbox platinum"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
                <li>
                  <div class="flipbox patsy"></div>
                  <div class="flipPad">
                    <a href="#" class="viewSongList">View Song List</a>
                  </div>    
                </li>
              </ul>
        </div>
        <div id="musicSliderNav" class="flexslider">
              <ul class="slides">
                <li>
                  <img src="images/music-sweet-dreams.jpg"/>
                </li>
                <li>
                 <img src="images/music-winter-wonderland.jpg"/>
                </li>
                <li>
                  <img src="images/music-right-cry.jpg"/>
                </li>
                <li>
                 <img src="images/music-mandy.jpg"/>
                </li>
                <li>
                  <img src="images/music-platinum.jpg"/>
                </li>
                <li>
                 <img src="images/music-patsy.jpg"/>
                </li>
              </ul>
        </div>
    </div>
  </section>

1 个答案:

答案 0 :(得分:2)

你需要修复a.viewSongList点击事件处理程序中的一些错误。

  

此外,翻转动画显示在div中的其他“隐藏”专辑中。

主要事件处理程序中的选择器涵盖的内容超出了您的需求。 例如,$(“。flipbox”)选择包含“flipbox”类的文档中的所有元素,而不仅仅是用于事件引发元素的子元素。

  

我希望它再次翻转相册,但它不会

“content”param应该包含在函数中,在你的情况下有一个jquery元素数组而不是函数。

看起来我的英语确实失败了,抱歉:&gt;

这里是正在进行的例子。

$('.flipPad a.viewSongList').attr('currentContent', 'art')
$('.flipPad a.viewSongList').click(function() {
    var that = this;
    var currentContent = $(that).attr('currentContent');
    var flipbox = $(that).parent().parent().find('.flipbox');
    var albumData = flipbox.find('.albumData');
    $(flipbox).flip({
        direction: 'lr',
        color: '#fff',
        content: function() {
            if(currentContent == 'art') {
                $(flipbox).addClass('removeBkgrnd');
                $(albumData).show();
            } else {
                $(flipbox).removeClass('removeBkgrnd');

            }                
        },
        onEnd: function() {
            if(currentContent == 'art') {
                $(that).addClass('viewAlbumArt').html('View Album Art');
                $(albumData).show();
                $(that).attr('currentContent', 'songList');
            } else {
                $(that).removeClass('viewAlbumArt').html('View Song List');
                $(albumData).hide();
                $(that).attr('currentContent', 'art');
            }
        }
    });
    return false;
});