JS div Popup问题

时间:2013-04-19 00:16:35

标签: javascript popup

我有一些div出现在点击链接上,但我试图让它当你点击第二个链接弹出时,任何打开的将在新的打开之前关闭。一次只能打开一个。

js ...

<script>
    $.fn.slideFadeToggle = function (easing, callback) {
    return this.animate({
        opacity: 'toggle',
        width: 'toggle'
    }, "fast", easing, callback);
};

$(function () {
    function select($link) {
        $link.addClass('selected');
        $($link.attr('href')).slideFadeToggle(function () {});
    }

    function deselect($link) {
        $($link.attr('href')).slideFadeToggle(function () {
            $link.removeClass('selected');
        });
    }

    $('.contact').click(function () {
        var $link = $(this);
        if ($link.hasClass('selected')) {
            deselect($link);
        } else {
            select($link);
        }
        return false;
    });

    $('.close').live('click', function () {
        deselect();
        return false;
    });
});

                            </script>
divs ......

 <div id='did_{$page_trackid}'  class='arrow_box pop_{$page_trackid}' style=''>  <img src='".$info4['Image']."' class='subtext_img'>
                                                    <h2 class='subtext'><a href='http://www.xxxxxxx.co.uk/dnb/".$info2['username']."'>".$info2['username']."</a></h2>
                                                    <p class='subtext'>".$info3['user_title']."</p>
                                                    <p class='subtext'><a href='".$info3['website_link']."' target='_blank'>".$info3['website_link']."</a>

                                                    </p>

                                                    </div>

                 <div id='did_2_{$page_trackid}'  class='arrow_box2 pop_stats_{$page_trackid}' style=''>  
                                                    <h2 class='subtext'>Stats</h2><br />
                                                    <p class='subtext'>Plays: 1m <br />
                                                                    Downloads: 527, 046

                                                    </p>

                                                    </div>

链接......

<div style='position: absolute; z-index: 2; padding-top: 30px; padding-left: 699px;'>

                <a href='#did_{$page_trackid}' class='contact' ><img style='height: 20px;' alt='Posted by' src='http://www.xxxxxxxxxx.co.uk/play1/skin/user-profile2.png' style=''></a> 
                </div>

                <div style='position: absolute; z-index: 1; width: 20px; height: 20px; padding-top: 50px; padding-left: 699px;'>
                <a href='#did_2_{$page_trackid}' class='contact'><img style='height: 20px;' alt='Track stats' src='http://www.xxxxxxxx.co.uk/play1/skin/stats.png' style=''></a>
                </div>

我尝试用

替换第一个函数
function select($link) {
$link.addClass('selected');
$('.arrow_box:visible').slideFadeToggle(function () {});
$($link.attr('href')).slideFadeToggle(function () {});

}

但是那个问题就出现了,其中一个弹出了另一个。我有2个div类(每个1个)所以我试图添加

  

$('。arrow_box2:visible')。slideFadeToggle(function(){});

但这也不起作用。

在点击链接打开新弹出窗口时,我是否正确关闭任何打开的arrow_box或arrow_box2?

感谢

1 个答案:

答案 0 :(得分:0)

我将你的html和js复制到一个jsfiddle并修改了select方法。试试这里:

http://jsfiddle.net/mchail/wHyfK/1/

我相信这就是你所要求的。关键是在切换新的“选定”窗格(显示它)之前切换任何显示的窗格(以隐藏它们)。

希望这有帮助。