Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在Jquery中从iFrame内部绑定到父级时重复绑定_Jquery - Fatal编程技术网

避免在Jquery中从iFrame内部绑定到父级时重复绑定

避免在Jquery中从iFrame内部绑定到父级时重复绑定,jquery,Jquery,我有一个棘手的情况-任何帮助将不胜感激 我有一个父页面,在iframe中有一个子页面。以下是html示例: 对于父页面: <html> <body> <a id="banana">Banana</a> <iframe src="ChildPage.html" /> </body> </html> 这是因为当我们提交iframe时,clickHandler被视为一

我有一个棘手的情况-任何帮助将不胜感激

我有一个父页面,在iframe中有一个子页面。以下是html示例:

对于父页面:

<html>
    <body>
        <a id="banana">Banana</a>

        <iframe src="ChildPage.html" />
    </body>
</html>
这是因为当我们提交iframe时,clickHandler被视为一个新对象,与以前的clickHandler不同

有趣的是,名称空间也不起作用-名称空间上下文似乎位于创建名称空间的窗口内,而不是绑定到它所绑定的元素

// This still doesn't work either
$('#banana', top.document)
    .unbind('click.myns')
    .bind('click.myns', function() {
        alert('hello world');
    });

您可以向试图将事件绑定到的元素添加属性,然后在事件绑定上检查该属性

$("#banana:not(.initialized)", top.document).bind();
我通常在处理动态创建的内容时这样做,比如modals和iframe,以保存状态,并避免可怕的双重绑定混乱。

我最终不得不使用attr()。我本来希望使用data(),但这也没用——我想是因为,根据jquery文档,当用户“离开页面”时,使用data()的数据集会被清除。
// This still doesn't work either
$('#banana', top.document)
    .unbind('click.myns')
    .bind('click.myns', function() {
        alert('hello world');
    });
$("#banana:not(.initialized)", top.document).bind();