if语句后的Jquery回调

jquery callback after if statement

本文关键字:Jquery 回调 语句 if      更新时间:2023-09-26

大家好,我在某些情况下很难找到创建回调的帮助。

我有一段代码,加载链接页面到iframe,然后改变scr,如果另一个链接被按下。

$(".iframe").hide();
$(".lnk").click(function(){
$(".iframe").show('slow')
;})
;
$(".frmclose").click(function(){
$(".iframe").hide('slow')
;})
;

上面的代码在(document).ready中运行下面是在这之外(由于某种原因它不能在里面工作)

function changeIframeSrc(id, url) {
if (!document.getElementById) return;
var el = document.getElementById(id);
if (el && el.src) {el.src = url;return false;}return true;}

链接:

  <a href="http://www.google.com" onclick="return changeIframeSrc('ifrm', this.href)" class="lnk">google</a>

在此之前,我将iframe所在的div变为未隐藏的。我也有一个按钮在div隐藏div + iframe。

我遇到的问题是,一旦iframe已经打开,然后通过div链接关闭,如果它是通过点击不同的链接重新打开iframe隐藏显示旧的页面,然后改变。但我想要的是框架加载新页面(而隐藏),然后取消隐藏显示它。我想在iframe src改变后使用回调,但我看不到我会在哪里实现它。

发生的例子(点击GDPH按钮查看iframe的链接)

任何想法或帮助,感谢。

B碎石机

我认为你所需要做的就是在<iframe>关闭时清除src。这将清除页面,以便下次您显示iFrame时,它将再次开始为空白。

我做了一个小演示这个功能,使用3个链接从你的页面为例。<iframe>开始隐藏(通过CSS),每个链接将显示<iframe>,然后加载远程站点。我添加了一个关闭iframe链接来模拟您在您的网站上的<iframe>下的关闭链接。

希望这对你有帮助!

Edit:更新演示链接以包含回调部分。我在看问题的时候漏掉了这一点!

编辑2:你的changeIframeSrc函数没有工作是因为它是在jQuery匿名函数中定义的,并且是一个闭包。参见从javascript中调用Jquery函数

我将捕获iframe的.load()事件,这将在文档加载到iframe后触发。

$(".iframe").load(function { /* code to run when iframe is loaded */ });