2017-09-05 84 views
0
$('body').on('click', function() { 
    $('.detailTextContainer a').each(function() { 
    var urlFoto = $(this).attr('href'); 
    var imgElement = $("<img />").attr('src', urlFoto) 
           .addClass('dalsiFoto'); 

    $(this).empty().append(imgElement); 
    }); 
}); 

如何在加載頁面(無事件)後自動運行此函數。 '.detailTextContainer a'是動態元素,它們在啓動頁面後立即加載到頁面。jQuery動態元素自動運行的每種方法

我試過這段代碼:

function showImage(){ 
    $('.detailFeatureDesc a').each(function() { 
    var urlFoto = $(this).attr('href'); 
    var imgElement = $("<img />").attr('src', urlFoto) 
           .addClass('dalsiFoto'); 
    $(this).empty().append(imgElement); 
    }); 
}; 

showImage(); 

但是,這並沒有成功。

感謝

+0

參見:http://api.jquery.com/on/ 和https://stackoverflow.com/questions/1359018/in-jquery-how-to-attach-events-to-dynamic-html-elements –

+0

@Kamil請分享您的HTML代碼或錨定標記代碼,它們是動態加載的。 – Shiladitya

回答

0

可以使用load功能:

$(window).load(function() { 

     // create detailTextContainer here 
     $('.detailTextContainer a').each(function() { 
      var urlFoto = $(this).attr('href'); 
      var imgElement = $("<img />").attr('src', urlFoto) 
              .addClass('dalsiFoto'); 

     $(this).empty().append(imgElement); 

     }); 

}); 

從技術文檔,當頁面完全加載包括圖形,這將運行功能。

或者你可以使用:

$(document).ready(function() { 

}); 

或簡寫:

$(function() { 

}); 

這隻會一旦網頁文檔對象模型(DOM)運行準備的JavaScript代碼來執行。

+0

感謝您的回覆。但是你的.load()(在我的頁面)的解決方案和我的一樣。圖片元素在點擊事件後追加。 這個解決方案也不起作用: '$ function(){('.detailTextContainer a').each(function(){ var urlFoto = $(this).attr('href'); 變種imgElement = $( 「」).attr( 'SRC',urlFoto) .addClass( 'dalsiFoto'); $(本).empty()追加(imgElement); }); };' –

+0

這應該有效,但是你必須在每個函數之前創建動態元素。嘗試在每個之前創建它們在windows加載函數(或文檔準備好)之前。如果沒有html代碼很難提供工作示例。 – amicoderozer

0

,你只要簡單地寫在功能窗口加載功能

<script> 
$(document).ready(function() { 
    console.log("document loaded"); 
}); 

$(window).on("load", function() { 
    //write your code is given section 
}); 
</script> 
0

你可以試試 「的」 聽衆

$(document).on("click", ".detailTextContainer a", function() { 
    // your code 
});