2012-06-05 38 views
0

我在iframe dynamically添加內容和內容的內部執行的綁定與事件使用.live() function事件不是IFRAME

  <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中添加綁定事件腳本。

回答

1

您的活動綁定僅適用於非iframe的主文檔。你試過跟隨?

使用jQuery 1.4及以上版本使用jQuery delegate

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

使用jQuery 1.7及以上版本使用jQuery on

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

另見example for delegate()example for on():在 「的MouseEvent裝」 後,警報懸停雲形象。

P.s .:這將針對iframe中的所有<p>。但iframe只會在不違反瀏覽器的跨站點策略的情況下才會被解析。

+0

謝謝你的回答,我試過但不工作 –

+0

如果你使用jQuery 1.7.2用'on'方法替換'live'(我更新了我的答案)。 – scessor

+0

我已經添加了一個exmaple。 – scessor