2013-10-24 34 views
0

如何動態加載項目時觸發事件?加載元素時綁定委託事件

我有一個加載iFrame的html頁面。我只能訪問父頁面,動態加載的元素位於iframe上。

當我嘗試這樣的事:

$(document).ready(function() { 
    $(document).on("click", "#link1", function() { 
     alert("link loaded"); 
    }); 
}); 

我可以看到警報後在link1是印刷機。但我想要的是當元素第一次變爲可見時綁定事件。

我試圖用類似下面的,但它失敗:

$(document).on("load", "#link1", function() { 
    alert("link loaded"); 
}); 

PS:當iframe中加載它一些Ajax加載的東西,然後link1出現。所以我不能綁定事件上iframe.load()

+0

您可以使用觀察者或突變事件,但瀏覽器對每種事件的支持都非常有限。通常這樣編寫代碼幾乎沒有理由,最好是在生成鏈接的事件發生時運行代碼或觸發事件。 –

+0

@KevinB我只能使用IE :( – MaVRoSCy

+0

在「ajax加載內容」的成功中運行你的代碼,這就是我在第一條評論中暗示的內容 –

回答

1

如何簡單地使用load()函數?

$(function(){ 
    $('#myIframe').load(function(){ 
     $(this).show(); 
     alert('link loaded'); 
    }); 
}); 

或者我誤解了你的問題?

+1

如果myIframe沒有被找到,因爲它是動態添加的,您需要使用$(document).find('#myIframe') .load(function(){}'但是我不確定它是否是動態添加的''或'