0
<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 iframe。因此,当您单击触发器时,它会在打开滑动面板后刷新喊话框

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

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

1 回答 1

1

几个问题:

  • 您的点击事件中有一个 return false (这不是必需的),而且它在您的 reload 语句之前。所以它永远不会执行。
  • 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");

    });
});

小提琴

于 2013-06-13T20:14:56.677 回答