iframe加载多次

时间:2013-10-08 13:21:04

标签: javascript jquery iframe

我遇到iframe问题。问题是我有一个主页面和菜单,用iframe加载内容。在主页面上我还有一个div“MessageBox”在一个iframe中我在“MessageBox”中显示变量的内容,所以我在MAIN页面上有一个全屏消息。

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时,我看到3次警报( “OK”)。

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

请帮助:)

1 个答案:

答案 0 :(得分:1)

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

修改:要仅为iframe使用中的.Ok元素注册点击次数: $('.Ok').live('click', function() {...}); 没有父窗口的范围。 BTW:$('...').live(...)已被弃用。使用.on()附加事件处理程序。