将事件绑定到动态创建的iframe元素上

3

我希望能够将一个事件监听器绑定到尚未存在于DOM中的元素上。现在这种情况适合使用jQuery.on()方法。

但是,在这种情况下,我需要将事件绑定到iframe中的元素上。可以通过以下方式实现:

$("#iFrame").contents().find(".my_element").bind(...

等等。但我现在的情况是,该元素尚未存在于 iFrame 文档中(它是由用户交互添加的),因此 .find() 将返回一个空数组,事件将无法绑定。

是否可能绑定事件监听器到后来创建的 iFrame 特定元素?我只找到了针对已经存在的元素的解决方案,使用 contents() 和 find()。

提前致谢!


我会将事件更改或准备好分配给iframe,在回调中,我会尝试按照您所写的方式进行分配。 - Michał Fraś
你想把一个事件绑定到尚不存在的元素上?为什么呢? - Amin Jafari
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

我已经找到了一个很好的解决方案。如果这个方案不起作用,只需通过 alert( $("#iframe").length ); 检查 iframe 是否存在。值必须大于0。

$("#iframe").contents().find('body').on("click", ".my_element", function (e)
{
    alert("Give it to me dude ;)");
});

0

试一下这个

$("#iframe").load(function(){
    $("#iFrame").contents().find(".my_element").bind('click',function(){
       // Your code here
    });
});

希望这能有所帮助。干杯。


也许我没有正确描述我的问题。该元素是通过另一个用户输入创建的,因此它永远不会自动存在于DOM中。所以'find'函数总是返回空值。 - Ahab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,