J'ai une fonction JavaScript qui ne se déclenche pas lors de l'actualisation de la page. Cela fonctionne lorsque je navigue vers la page à partir d'une autre page, mais échoue si je rafraîchis la page.

Tout ce que cette fonction fait est d'assigner la hauteur d'un élément de la page à la hauteur d'un autre élément ( S'ils existent tous les deux ).

jQuery(document).ready(function ($) {
    if ($(".Video_Pane iframe").length && $(".Image_Pane img").length) {
        $(".Video_Pane iframe").height($(".Image_Pane img").height())
    }
}

Des idées? La console ne montre aucune erreur à ce sujet

0
Anakin Skywalker 8 mars 2016 à 14:24

3 réponses

Meilleure réponse

L'existence du img n'implique pas qu'il a été chargé ( pour que vous puissiez lire sa hauteur ). Et l'actualisation invalidera généralement la version mise en cache de l'image, elle doit donc être rechargée .

Essayez d'utiliser l'événement load ( sur l'objet fenêtre ) et non pas ready

jQuery(window).load(function ($) {
    if ($(".Video_Pane iframe").length && $(".Image_Pane img").length) {
        $(".Video_Pane iframe").height($(".Image_Pane img").height())
    }
})
4
Gabriele Petrioli 8 mars 2016 à 11:36

Vous avez une erreur de syntaxe dans votre code. Après le dernier }, il manque );.

Je viens de l'essayer et ça fonctionne pour moi comme ceci:

jQuery(document).ready(function ($) {
    console.log("Hello");
});
0
Lukas Goßmann 8 mars 2016 à 11:31

Il vous manque un support.

jQuery(document).on('ready',function () {
    if ($(".Video_Pane iframe").length && $(".Image_Pane img").length) {
        $(".Video_Pane iframe").height($(".Image_Pane img").height())
    }
});

J'utiliserais également .on ('ready') plutôt que .ready.

0
DevStacker 8 mars 2016 à 11:32