Je suis relativement nouveau à javascript alors s'il vous plaît soyez patient si ce que je demande est complètement stupide! J'essaye de faire un module simple. A l'intérieur du module je veux avoir un objet de configuration qui contient les paramètres pour le module. J'utilise aussi jquery. Les sélecteurs jquery ne fonctionnent que dans une fonction directement dans l'objet/module principal. Je comprends que javascript a une portée fonctionnelle, donc je suis surpris que je ne peux pas utiliser les sélecteurs de jquery n'importe où à l'intérieur du module.Javascript scope help
EDIT: Je veux être en mesure de définir directement toutes mes configs à l'intérieur de l'objet configs en utilisant les sélecteurs jquery. De cette façon, je garde toutes les choses en désordre à l'intérieur d'un seul endroit et peut alors accéder à configs.whatever tout au long du reste du module. Pour le moment, les sélecteurs jquery ne fonctionnent pas dans le module configs.
var OB = function() {
var configs = {
'mode' : 'test',
'numOfSelects' : $('.mySelect').find('select').length, // This doesnt work
}
var getMode = function() {
return configs.mode;
}
function init() {
alert(configs.numOfSelects); // This alerts 0 until the following line
alert($('.mySelect').find('select').length); // This correctly alerts 2
};
var handlers = {
successHandler : function() {
alert("Success");
},
errorHandler : function() {
alert("error");
}
}
return {
init : init,
getMode : getMode
}
}();
$(document).ready(function(){
OB.init();
});
Pourriez-vous modifier ceci afin d'inclure exactement votre question? Qu'attendez-vous? Qu'avez-vous déjà essayé? Quels résultats obtenez-vous? Comment pouvons nous aider? Quelle est ta couleur préférée? Merci :) – Aardvark
jQuery sélecteur sont de portée mondiale, et devrait donc être accessible depuis n'importe où. Êtes-vous sûr qu'ils ne sont pas accessibles? Quels sont les symptômes? –
Salut Marcelo. il y a deux boîtes de sélection appelées dans le dom avec la classe .mySelect. Quand j'appelle alert (configs.numOfSelects); dans l'exemple ci-dessus - j'obtiens 0 Quand j'appelle alert ($ ('. mySelect'). find ('select'). length); qui est dans la fonction init je reçois la bonne quantité de 2 – David