0

我正在添加内容,iframe dynamically并且该内容使用以下事件与事件绑定.live() function

           <body>
            <div id="container">
               <iframe id="if" src="something"></iframe>
            </div>

            <script>
             /* binding event */
             $(document).ready(function() {
               $("p").live("mouseover", function() { /* do something */ });
             });

             /* appending content */
              $("#if").contents().find("#someid").append("<p></p>");                  
            </script>
           </body>

添加成功,p tag但鼠标悬停时未执行事件。有什么问题?

注意:我无法在 iframe 中添加绑定事件脚本。

4

1 回答 1

1

您的实时绑定仅适用于主文档,不适用于 iframe。你试过跟随吗?

使用 jQuery 1.4 及更高版本使用jQuery 委托

$("#if").ready(function() {
    $("#if").contents().delegate("p", "mouseover", function() {
        // do something
    });
});

对于 jQuery 1.7 及更高版本,请在jQuery 上使用:

$("#if").ready(function() {
    $("#if").contents().on("mouseover", "p", function() {
        // do something
    });
});

另请参阅delegate()的示例或on()的示例:在“鼠标事件加载”警报悬停云图像之后。

Ps:这将针对<p>iframe内的所有内容。但是 iframe 只有在不违反浏览器跨站策略的情况下才会被解析。

于 2012-06-05T06:05:03.713 回答