Jquery - Obtenir de l'Attribut à l'aide de “ce”
Cela peut être quelque chose de très facile, mais je n'arrive pas à obtenir que cela fonctionne et je ne sais pas pourquoi. J'ai installé jquery et je suis en train d'essayer d'obtenir un attribut de "cet" élément lorsque je clique sur elle. Droit maintenant, mon code ressemble à ceci:
url = $(this).attr("href")
Lorsque j'appelle cette fonction en cliquant sur un lien, il me dit que la variable "url" n'est pas défini. Alors, évidemment, il n'est pas ramasser le "présent" lorsque je clique sur le lien. Je suis en train de passer le href d'une balise d'ancrage à utiliser comme ma variable.
Ce que je suis dominant? Encore une fois, je sais que c'est quelque chose de très simple mais je n'arrive pas à comprendre, je vous remercie donc d'avoir pris le temps de m'aider.
Grâce.
<script type="text/javascript">
url = "push1";
$("a").live("click", function(event) {
event.preventDefault();
url = $(this).attr("href");
})
$.ajax({
type: "get",
url: "/"+url+".php",
data: "",
dataType: "html",
success: function(html){
jQuery('#Right_Content').hide().html(html).fadeIn(1000);
},
})
;
</script>
html:
<body>
<a href="push1" >Image 1</a>
<a href="push2" >Image 2</a>
<div id="Right_Content"></div>
</body>
Êtes-vous manque le var définition?
Ajoutez le code ci-dessus.
Vous vous rendez compte il y a un point-virgule manquant après la
$('a').live()
, droit? Syntaxe non valide être le problème. Aussi, une virgule de la success
. Et la fixation de votre syntaxe semble pour le faire fonctionner: JS Fiddle démo, bien que, évidemment, le contenu ne se charge pas, mais je me suis connecté la url
variable à la console. Et live()
est obsolète, vous devez utiliser on()
, ou de delegate()
(l'ancien pour jQuery 1.7+, le dernier pour <1.7).Vous avez un illégales virgule après votre "succès" de la fonction.
OriginalL'auteur user982853 | 2012-03-07
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner pour vous
En supposant que vous ciblez tous les tags ancres avec une classe css appelé "lien"
Voici l'exemple : http://jsfiddle.net/L99mM/2/
Edit: Comme par votre code publié dans la question
Vous devriez appeler preventDefault après votre appel ajax. et là, c'est la fermeture crochets devraient être après l'appel ajax
this.getAttribute("href")
OriginalL'auteur Shyju
OriginalL'auteur Dunning-Kruger
vous n'avez pas besoin de "ce" pour ce, vous avez besoin de la cible de l'événement:
de travail violon
http://jsfiddle.net/3LvCm/
Object http://fiddle.jshell.net/_display/push1 has no method 'attr'
.Pourquoi devrait-il pas utiliser
this
? Il s'en réfère à l'élément de l'événement a été déclenché.yep remarqué que tout en faisant le violon, édité
travailler (comme ce violon montre jsfiddle.net/jUKgs), mais lorsque les méthodes obtiennent de grands et complexes, il est beaucoup plus facile de suivre l'événement de variables que d'avoir à essayer de comprendre ce que "cela" se réfère dans cette instance. Juste un choix de conception vraiment.
OriginalL'auteur Evert