Comment faire pour que cela se charge en dernier?
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("div.domTip_tipBody").mouseover(function(){
jQuery("#yyy a.tippy_link").css("background-color","yellow");});
jQuery("div.domTip_tipBody").mouseout(function(){
jQuery("#yyy a.tippy_link").css("background-color","red");
});
});
</script>
Il est en cours d'exécution avant que "div.domTip_tipBody" ne soit en cours d'exécution (généré par un shortcode), il ne se passe donc rien.
J'ai essayé:
<script src="script.js" type="text/javascript" defer="defer"></script>
dans mon header.php avant
</head>
mais ça n'aide pas.
Vous avez vu "window.onload =" mais vous ne savez pas comment l'appliquer.
Toute idée est appréciée.
Merci
add_action('wp_footer','myscript_in_footer');
function myscript_in_footer(){
?>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("div.domTip_tipBody").mouseover(function(){
jQuery("#yyy a.tippy_link").css("background-color","yellow");});
jQuery("div.domTip_tipBody").mouseout(function(){
jQuery("#yyy a.tippy_link").css("background-color","red");
});
});
</script>
<?php
}
your_name.js
.Ajoutez les éléments suivants à votre fichier functions.php
:
function wpse47618_load_script_last()
{
wp_enqueue_script( 'zzz_your_name', get_stylesheet_directory_uri().'your_name.js', array( 'jquery' ), '0', true );
}
add_action( 'wp_enqueue_scripts', 'wpse47618_load_script_last', 99999 );
Cela ressemble à un problème de délégation d'événements jQuery. Si les nouveaux éléments DOM sont ajoutés après le chargement de la page, jQuery ne les lira pas. Vous devez donc dire à jQuery d'avance de lier un événement si un tel élément existe maintenant ou dans le futur.
essayez $.delegate('div.domTip_tipBody','mouseover', function(e){ jQuery("#yyy a.tippy_link").css("background-color","yellow");}); });
Voir http://api.jquery.com/delegate/ , http://lab.distilldesign.com/event-delegation/
Vous pouvez simplement ajouter le script à footer.php et cela fonctionnera probablement, mais ce n’est pas le meilleur moyen d’éviter les conflits jQuery.
Le meilleur moyen est de mettre le script en file d'attente à partir d'un fichier séparé. Voir http://codex.wordpress.org/Function_Reference/wp_enqueue_script qui a un paramètre pour charger les scripts dans le pied de page via wp_footer.
Et consultez le Guide du développeur JavaScript et CSS sans conflit avec Word Dans WordPress: http://wp.smashingmagazine.com/2011/10/12/developers-guide-conflict-free-javascript-css-wordpress/
Cela pourrait être un "peu" en retard, mais juste au cas où quelqu'un cherche encore:
http://css-tricks.com/snippets/jquery/run-javascript-only-after-entire-page-has-loaded/
Un moyen simple et agréable de le faire!