gpt4 book ai didi

javascript - iframe 加载多次

转载 作者:行者123 更新时间:2023-11-28 01:54:59 28 4
gpt4 key购买 nike

我的 iframe 有问题。问题是我有一个主页和菜单,它使用 iframe 加载内容。在主页上,我还有一个 div“MessageBox” 在一个 iframe 中,我在“MessageBox”中显示变量的内容,因此我的主页上有一条全屏消息。

iframe 中的示例我有生成此内容的按钮:

        content="<input type='button' value='OK' class='Ok' id='Ok'/>";
MessageBox("Click OK", content, "child", "400", "170");

在 iFrame 中我有 jquery 函数:

$(".Ok",window.parent.document).live("click",function(){
alert("OK");
});

一切顺利,只有当我第一次进入这个 iframe 时。我看到警报(“确定”)并且它很酷,但是当我从菜单中单击其他 iframe 并再次单击此 iframe 时,我看到警报(“确定”)两次,当我再次单击其他 iframe 并返回此 Iframe 时,我看到 3 次警报(“确定”)。

有人可以帮我解决这个问题吗?是否有 iframe 缓存或类似的东西?我认为每次我打开 iframe 时它都会存储在内存中,这就是为什么我有很多 calsses “.Ok”,当我单击按钮“OK”时,libe click 方法执行的次数与我在内存中存储 iframe 的次数一样多?

请帮忙:)

最佳答案

问题是,每次从菜单添加另一个 iframe 时,您都会将新的点击处理程序注册到具有 '.Ok' 类的每个元素,因此也是如此对于您已加载的每个 iframe 元素。

编辑:要仅注册 iframe 中 .Ok 元素的点击,请使用:$('.Ok').live('click', function() {...});没有父窗口的范围。顺便说一句:$('...').live(...) 已弃用。使用 .on() 附加事件处理程序。

关于javascript - iframe 加载多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com