2010-07-23 3 views
0

Je prends la valeur d'un élément select et je tente de le modifier afin que je puisse avoir accès à l'élément de prévisualisation à l'écran représenté par l'élément sélectionné. Voici la première partie du code ...jquery reconstruire un sélecteur à partir d'une chaîne

$("#single_area_select").change(function(){ 
     var $element = '#preview_' + $("#single_area_select").val().toLowerCase(); 
     elementChangedOrSelected($element); 
    }); 

Et la partie critique de la méthode elementChangedOrSelected() ...

function elementChangedOrSelected(element){ 
    element = '$("' + element + '")'; 
    alert(element); 
    var position = element.position(); 
    alert(position); 

Ma première alerte fait ressembler je l'ai right (ie, $ ("# preview_title")), mais la deuxième alerte ne fait pas d'apparition qui m'indique que la requête de position échoue. Quelqu'un peut-il voir quelque chose que je ne peux pas?

+0

Utilisation des alertes est une façon moche de débogage Javascript. Pour tous les principaux navigateurs (lire: Firefox, Safari, IE8, Opera) il y a de bons débogueurs. Firefox est [Firebug] (http://getfirebug.com); Safari, IE8 et Opera les ont intégrés. Bon débogage! –

+0

Je travaille principalement avec Chrome, mais vous avez raison et merci pour le conseil! – jakev

Répondre

2
function elementChangedOrSelected(element){ 
    element = $(element); 
    alert(element); 
    var position = element.position(); 
    alert("left: " + position.left + ", top: " + position.top); 
} 
+1

Ouais ça. ''$ ("' + element + '")'' renvoie une chaîne, qui n'aurait pas de méthode de position. –

+0

Je savais que je me sentirais stupide. Merci! – jakev

0

il vous suffit de le faire:

position = $(element).position(); 
Questions connexes