jquery在打开滑动面板后重新加载iframe

时间:2013-06-13 20:01:34

标签: javascript jquery iframe panel

<script type="text/javascript">
$(document).ready(function(){
    $(".trigger").click(function(){
        $(".shoutpanel").toggle("fast");
        $(this).toggleClass("active");
        return false;
    });
});
</script>

<a class="trigger" href="#">Shoutbox</a>


<div class="shoutpanel">
<iframe id="shoutbox" name="shoutbox" width="350" height="480" src="tchat.php">
</iframe>
</div>

此脚本将切换一个带有shoutbox的滑动面板。 如果我把shoutbox放在滑动面板之外,它会在加载后立即自动向下滚动(显示最后一个喊声) 但是由于某些未知的原因,当我将shoutbox放在滑动面板内时,除非​​我手动刷新它,否则它不会向下滚动。

所以我试图找到一个解决方法,我想设置触发器脚本,以便在执行时自动刷新shoutbox iframe。因此,当您单击触发器时,它会在打开滑动面板后刷新shoutbox

我不是jquery pro,所以我自己无法做到......基本上我只需要这样的东西:

$(document).ready(function(){
$(".trigger").click(function(){
    $(".shoutpanel").toggle("fast");
    $(this).toggleClass("active");
    return false;
            document.getElementById(shoutbox).contentDocument.location.reload(true);
});
});

1 个答案:

答案 0 :(得分:1)

几个问题:

  • 您在点击事件中返回false(这不是必需的),并且它在您的重新加载语句之前。所以它永远不会执行。
  • document.getElementById(shoutbox)的id应为引号。
  • 使用此功能,即使在slideUp期间也始终重新加载iframe。

试试这个:

$(document).ready(function () {
    $(".trigger").click(function () {
        $(".shoutpanel").toggle("fast", function () { //Use toggle's complete function 
            if ($(this).is(':visible')) {   // check if this is in visible mode
              document.getElementById("shoutbox")
                    .contentDocument.location.reload(true); //reload the iframe
            }
        });
        $(this).toggleClass("active");

    });
});

Fiddle