Quel est le meilleur moyen de savoir ce que par exemple La raison pour laquelle je demande est qu'un morceau de code ne fait pas de quoi il devrait faire ce qu'il devrait faire après avoir déplacé le code dans une fonction. p> L'extrait ci-dessous est maintenant dans une fonction et $ (ceci) semble maintenant se référer à Domwindow. P> Comment puis-je le garder comme $ (ceci) étant l'élément cliqué d'origine? P> < / p> $ (this) code> est actuellement égal à jQuery?
alerte (this); code> n'est pas beaucoup d'aide. P>
4 Réponses :
Quel est le meilleur moyen de savoir ce que
$ (this) code> est actuellement égal à jQuery? p>
En l'enregistrant à la console de votre outil de débogage JavaScript préféré (comme barre d'outils de développeur Firebug ou chrome, par exemple): p> < Pré> xxx pré>
qui retournera un objet emballé JQuery. Si vous souhaitez en savoir plus sur l'objet natif, vous pouvez utiliser: p>
xxx pré> Si vous faites du développement JavaScript, vous devez utiliser un outil de débogage JavaScript.
alerte code> n'est pas un tel outil. p>
Maintenant que vous avez mis à jour votre question avec une source de code, il semble que vous utilisiez
$ (ceci) code > dans la portée globale. Ensuite, il fera référence à l'objet code> window code>. Si vous voulez faire référence à un élément cliqué ou quelque chose que vous devrez d'abord vous abonner à l'événement .Click: p>
xxx pré> ou si vous vouliez externaliser ce code dans un séparé Fonction: p>
xxx pré> ou: p>
xxx pré> blockQquote>
Est-ce qu'il y a de toute façon pour la réduire? qui retourne beaucoup de données.
@CRAigward, oui, utilisez console.log (ceci); code> Pour enregistrer uniquement l'objet natif et non
$ (this) code>.
@CRAigward, que voudriez-vous la réduire à ce moment-là? J'aimerais que ce soit comme $ (ceci) .attributshatiwantosee () code>
Il renvoie Domwindow, dont les 100 enfants sont des objets. Est-ce normal?
@CRAigward, je ne sais pas si c'est normal. Cela dépendra de votre code et de la portée des variables. Quelles propriétés a-t-elle?
@CRAigworard Bien que Ce code> est probablement
fenêtre code> ce qui signifie que vous avez un problème de contexte de fonction quelque part.
avec le changement de code dans une fonction généralement la portée des changements de code. Donc, "ceci" ne fera plus référence à l'objet d'origine, mais plutôt à une nouvelle (ou à l'objet global "fenêtre"). Si vous nous montrez votre code, nous pourrons identifier le problème. P>
Cela ressemble à le problème. Son retour au Domwindow. Existe-t-il un moyen de garder $ (ceci) quand dans la fonction?
Je soupçonne que vous faites quelque chose comme ceci: dans ce cas clickhandler code> sera appelé dans le contexte de l'objet de la fenêtre. Pour préserver le contexte correct, changez simplement votre code en: p>
Si vous souhaitez vérifier ce qui est passé autour de vous, vous pouvez utiliser ma version ou la version de JqueryLog de PRINZHORN. Cela devrait vous aider à identifier étape par étape ce qui se passe:
http://www.jquerylog.com / < Un href = "https://github.com/fmsf/jquerylog" rel = "nofollow"> https://github.com/fmsf/jquerylog p>
pour un appel comme: < / p> Vous obtiendrez une sortie comme celle-ci (qui identifie la DIV dans chaque étape: p>