2013-07-30 6 views
0

J'utilise Leaflet pour créer une carte avec un sélecteur de calques et jQuery pour lier les radios créées par le sélecteur de calque Leaflet. Je suis en mesure de voir que la radio a été sélectionné dans une alerte en utilisant le code suivantEnregistrer jQuery dans une variable

$("[name='leaflet-base-layers']").change(function() { 
    alert('Layers selected: ' + $(this).parent().text()); 
}); 

Je voudrais savoir comment stocker ces données comme une variable Javascript à comparer dans

if (ExampleVariable == "Phoenix") { 
map.panTo([33.4314,-112.0747]); 
} 

Y at-il un moyen de le faire, et si non, comment puis-je utiliser le stockage de données interne de jQuery pour ce faire?

+0

'ExempleVariable = $ (this) .parent(). Text();'? – Joe

+0

Je suis un idiot. J'ai essayé d'utiliser var ExampleVariable = $ (this) .parent(). Text(); Tout le temps. Merci beaucoup. – user2635302

+0

Pourquoi pas 'if ($ (" [nom = 'leaflet-base-layers'] "). Val() ==" Phoenix ") {...}'? –

Répondre

0

Voulez-vous dire quelque chose comme ça?

var lastSelected = null; // if you need it later for anything 

$("[name='leaflet-base-layers']").change(function(){ 

    var text = $(this).parent().text(); 

    lastSelected = text; 

    // use the text for anything 
    switch(text) { 
     case "Phoenix": 
      map.panTo([33.4314,-112.0747]); 
      break; 
     case "SomethingOther": 
      map.panTo([10, 120]); 
      break; 
    } 

}); 
+0

J'ai essayé d'enregistrer dans une variable globale et j'ai toujours le même problème lorsque la carte ne se charge plus et que la console indique 'Uncaught SyntaxError: Unxpected token' sur cette ligne de code. Cela ne se produit pas lorsque j'essaie de faire une alerte, mais avec l'une des suggestions de variables. – user2635302

+0

Je ne vois aucun bogue dans mon code .. – MightyPork

0
$("[name='leaflet-base-layers']").change(function() { 
    alert('Layers selected: ' + $(this).parent().text()); 
    ExampleVariable = $(this).parent().text(); 
}); 
+0

J'ai essayé d'enregistrer dans une variable globale et j'ai toujours le même problème où la carte ne se charge plus et la console dit 'Uncaught SyntaxError: Unxpected token' sur cette ligne de code.Cela ne se produit pas lorsque j'essaie de faire une alerte, mais avec l'une des suggestions de variables. – user2635302

0

Vous pouvez soit sauvegarder la valeur à une variable déclarée globalement

var selLayer; // global 

$("[name='leaflet-base-layers']").change(function() { 
    selLayer = $(this).parent().text(); 
}); 

Ou, en utilisant les magasins de données jQuery

$("[name='leaflet-base-layers']").change(function() { 
    $(this).data("selLayer", $(this).parent().text()); 
}); 

if ($("[name='leaflet-base-layers']").data("selLayer") === "Phoenix") { 
    map.panTo([33.4314,-112.0747]); 
} 

Vous devriez élément idéal de la couche notice magasin pour évitez la recherche jQuery encore et encore.

var $leafletBase = $("[name='leaflet-base-layers']"); 
+0

J'ai essayé d'enregistrer dans une variable globale et j'ai toujours le même problème lorsque la carte ne se charge plus et que la console indique 'Uncaught SyntaxError: Unxpected token' sur cette ligne de code. Cela ne se produit pas lorsque j'essaie de faire une alerte, mais avec l'une des suggestions de variables. – user2635302

0

La façon la plus simple est comme ceci:

$("[name='leaflet-base-layers']").change(function() { 
    leafletText = $(this).parent().text()); 
}); 

Notez que si vous utilisez le var mot-clé dans cette mission, vous allez avoir des problèmes de cadrage avec votre comparaison ultérieure depuis cette variable ne sera pas accessible en dehors de cette fonction particulière. En omettant le mot-clé var, vous placez le var dans le contexte global, ce que vous devriez généralement éviter lorsque cela est possible.

Je suggère fortement d'en apprendre davantage sur la portée variable, car c'est un concept important à saisir.

+0

J'ai essayé d'enregistrer dans une variable globale et j'ai toujours le même problème lorsque la carte ne se charge plus et que la console indique 'Uncaught SyntaxError: Unxpected token' sur cette ligne de code. Cela ne se produit pas lorsque j'essaie de faire une alerte, mais avec l'une des suggestions de variables. – user2635302

Questions connexes