2010-11-04 4 views
1

Quelqu'un peut-il me dire pourquoi l'exemple ci-dessous ne fonctionne pas:jQuery objet global ne fonctionne pas à l'intérieur fonction

var obj = $('#example'); 

function examplefunc(){ 
    obj.hide(); 
} 

Alors que le second fonctionne très bien:

function examplefunc(){ 
    var obj = $('#example'); 

    obj.hide(); 
} 

Je sais que la différence est évidente - dans le premier exemple nous avons une variable globale, alors que dans la seconde nous avons une variable locale. Mais un autre exemple montre que la chaîne globale var i accessible à l'intérieur de la fonction:

var text = "Hello World!" 

function examplefunc(){ 
    alert(text); 
} 

Comment puis-je faire une variable objet jQuery globale visible à l'intérieur de la fonction dans le premier exemple? Y a-t-il des limites à la création et à l'utilisation d'un objet jQuery global? Des solutions?

+0

Il n'y a pas de limitation, le premier bloc de code que vous présentez doit travailler . Vous ne nous montrez pas tout le code –

Répondre

1

Je hasarder je suppose que vous exécuter cette ligne de code:

var obj = $('#example'); 

Avant l'élément avec l'ID de example est analysé dans le DOM par le navigateur. Vous pouvez travailler autour d'elle en déplaçant votre élément <script> au-dessous de l'élément #example dans votre document, ou vous pouvez utiliser le document d'événement prêt:

var obj; 

$(function() { // This function is run after the document is parsed and ready 
    obj = $('#example'); 
}); 

function examplefunc(){ 
    obj.hide(); 
}