簡體   English   中英

將事件綁定到出現的div

[英]Bind event to a div appearing

我可以創建一個事件,以便每當具有特定ID的元素變得可見或出現在頁面上時,都可以執行一些javascript嗎?

該元素來自一個遠程資源(所以不在我的html代碼中,而是出現在頁面加載中),我希望在代碼出現時可以運行一些代碼(並且只有在出現時,它才不會在每次加載時都出現)。

謝謝!

如果選擇器找不到匹配項,它將不會運行,因此只需要這樣的代碼即可:

 $("#elementID").each(function() {
   //do something
 });

只需在加載ID的任何代碼中運行該語句,或者以這種方式加載它即可在ajax處理程序中進行裝配:

$.ajaxSetup({
   complete: function() {
    $("#elementID").each(function() {
     //do something
    });
   }    
 });

您可以使用live()方法:

$('div_id_or_class').live('click', function(){
 // ................
});

您可以創建一個函數,每隔X毫秒檢查一次此元素是否出現在頁面上(純Javascript解決方案):

(​function ()​ {
    var intervalId = window.setInterval(function() {
        if (null != document.getElementById('myDivId')) {
            // the div appeared on the page
            // ... do your stuff here:
            alert('its here!');

            // optionally stop checking (obviously it's there already 
            // unless you decide to remove it)
            window.clearInterval(intervalId);
        };
    }, 100); // perform check every 100 milliseconds
}​)()​;

DIV可能一直存在,只是不可見。 因此,您的檢查功能應該有所不同:

var el = document.getElementById('myDivId');
if (null != el && (el.offsetWidth > 0 || el.offsetHeight > 0)) {

基本上(el.offsetWidth > 0 || el.offsetHeight > 0)表示該元素未被(el.offsetWidth > 0 || el.offsetHeight > 0)元素的CSS屬性隱藏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM