2017-09-05 5 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); 
    }); 
}); 

Comment puis-je exécuter cette fonction automatiquement après la page de chargement (sans événement). '.detailTextContainer a' sont des éléments dynamiques, qui sont chargés à la page immédiatement après la page de démarrage.jQuery chaque méthode pour les éléments dynamiques autorun

J'ai essayé ce code:

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

showImage(); 

Mais cela ne réussi.

Merci

+0

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

+0

@Kamil S'il vous plaît partagez vos codes 'HTML' ou codes d'identification d'ancrage qui se chargent de façon dynamique. – Shiladitya

Répondre

0

Vous pouvez utiliser la fonction 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); 

     }); 

}); 

De la documentation, cela exécutera la fonction lorsque la page est complètement chargée, y compris des graphiques.

Ou vous pouvez utiliser:

$(document).ready(function() { 

}); 

ou le raccourci:

$(function() { 

}); 

Cela ne fonctionnera une fois la page Document Object Model (DOM) est prêt pour le code JavaScript pour exécuter.

+0

Merci pour votre réponse. Mais votre solution avec .load() (dans ma page) est la même chose que mon. L'élément image est ajouté après l'événement click. Et cette solution ne fonctionne pas, aussi: 'fonction $() { $ ('.detailTextContainer a') .Chaque (function() {var urlFoto = $ (this) .attr ('href'); var imgElement = $ ("") .attr ('src', urlFoto) .addClass ('dalsiFoto'); $ (this) .empty() append (imgElement). }); –

+0

Ceci devrait fonctionner, mais vous devez créer vos éléments dynamiques avant chaque fonction. Essayez de les créer dans Windows fonction de chargement (ou document prêt) avant chaque.Sans code html est difficile de fournir un exemple de travail. – amicoderozer

0

vous devez simplement écrire la fonction sur la fonction de charge de la fenêtre

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

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

vous pouvez essayer "sur" écoute

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