J'ai besoin de créer une fonction simple dans jQuery qui appellera d'autres fonctions
$(document).ready(function() {
function reload_cart() {
alert('reload cart called');
}
});
$(document).ready(function() {
reload_cart(); //i need to call from here.
});
$(document).ready(function() {
$('a.add_to_cart').live('click', function (e) {
reload_cart(); //i need to call from here.
});
});
L'erreur que j'obtiens dans firebug: reload_cart() is not defined
.
reload_cart
Est local à votre premier rappel $(document).ready()
. Vous ne pouvez pas l'appeler depuis une portée extérieure.
Vous devez fusionner vos fonctions ensemble:
$(document).ready(function() {
function reload_cart() {
alert('reload cart called');
}
reload_cart();
$('a.add_to_cart').live('click', function(e) {
reload_cart();
});
});
Une solution encore meilleure serait de créer un objet cart
, d'ajouter reload
à son prototype et de l'initialiser en dehors de tous les rappels.
Oui, car vous avez déclaré la fonction dans la portée de la première $(document).ready(function(){})
afin qu'elle ne soit pas disponible en dehors de cette portée de fonction.
Je ne sais pas pourquoi vous appelleriez $(document).ready()
plus d'une fois. Essaye ça:
$(document).ready(function(){
function reload_cart() {
alert('reload cart called');
}
reload_cart(); //i need to call from here.
$('a.add_to_cart').live('click', function(e) {
reload_cart(); //i need to call from here.
});
});
Alternativement, vous pouvez également déclarer votre fonction en dehors de $(document).ready()
et elle sera disponible dans le monde entier.
Mettez votre définition de fonction:
function reload_cart() {
alert('reload cart called');
}
Document extérieur prêt.
Actuellement, sa portée dans le gestionnaire document.ready uniquement.
$(document).ready(function(){
//reload_cart is only available here
function reload_cart() {
alert('reload cart called');
}
});