J'ai deux fonctions JavaScript que je veux appeler depuis l'intérieur d'une fonction jQuery. Parce que je charge des images dynamiquement, je veux vérifier la largeur de chaque image en appelant les deux fonctions func1()
et func2()
qui vérifieront la largeur.
If width < 20px then double width
Je ne veux pas attendre que les images se chargent complètement, puis faites la vérification.
J'ai essayé mais ça n'a pas marché
$(document).ready(function ()
{
$('img').each(function()
{
....
})
func1();
func2();
})
function func1()
{
....
}
function func2()
{
....
}
Qu'est-ce que je rate?
3 réponses
À moins que les balises img aient la largeur spécifiée, vous ne pourrez pas obtenir correctement la largeur avant qu'elle ne soit complètement chargée. Le navigateur n'a aucun moyen de savoir quelles sont les dimensions tant qu'il n'a pas l'image entière.
Voici une façon d'attendre que les images soient chargées:
J'ai eu un problème similaire à votre problème. Je pense que vous devez déplacer vos fonctions dans le bloc jquery.
$(document).ready(function() {
function1 () {
...
}
function2 () {
...
}
});
Sinon, je ne pense pas qu'ils puissent être appelés depuis l'intérieur de jQuery. Testez-le et informez-moi du résultat.
Vous pouvez changer cela:
$(document).ready(function ()
Pour ça:
$(window).load(function ()
Pour vous assurer que toutes les images sont chargées.
Une autre option serait de lier les load
gestionnaires aux images elles-mêmes, mais il peut y avoir des problèmes si les images sont mises en cache.
$('img').load(function() {
func1();
func2();
});
Vous devez noter que cela appellera les fonctions une fois pour chaque image , ce qui peut signifier que vous devrez modifier le fonctionnement des fonctions. Comme s'ils recevaient l'image individuelle comme argument.
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.