Quelqu'un peut-il me dire pourquoi le prochain code JQuery ne fonctionne pas. Je l'ai déjà essayé en dehors du bloc Remarque: le bizarre "{{}}" et "{%%}", est typiquement django p> jQuery p> html: p> merci p> p> P> $ (document) .Ready code> bloc et qui ne fonctionne pas non plus
3 Réponses :
P>
$(document).ready(function () {
setTimeout(function(){
$(".post_thumb_up").hover(function () {
// may be you need to set "http://" or "fullpath" to src value
$(this).attr("src", "/post_it/static/media/thumb_up_hover.png");
});
$(".post_thumb_up").click(function () {
$(this).attr("src", "/post_it/static/media/thumb_up.png");
});
},200)
});est votre partie de la partie de votre divated de div (.post) de la partie du marquage SSR? S'il est généré de manière dynamique, vous devez lier son événement après son rendu. P>
Je soupçonne que cela pourrait être un cas. P>
Oui, ce modèle est le côté du serveur rendu et j'appelle ce modèle avec un appel AJAX, mais que voulez-vous dire par "alors que vous devez lier l'événement poster son rendu.".
Voici donc la solution maintenant. Comme ce modèle est atteint via l'appel Ajax, ainsi sur le succès de Ajax, vous risquez d'injecter cela sur le DOM. Donc, une fois injecté sur DOM, vous pouvez lier l'événement sur les nœuds DOM nouvellement injectés.
Ou 2e solution: vous pouvez également utiliser la délégation d'événement JQuery en utilisant le document comme noeud racine. Ce qui aidera à des événements contraignants à des nœuds dynamiques que nous traversons Ajax ou créé après Ajax.
Oke j'ai googlé un peu, je vais l'essayer avec .bind code>. Quand je suis à la maison.
@Jake "... avec un appel Ajax" i> - ces informations ont b> faire partie de votre question.
Utilisez jQuery .on () événement qui connecte une fonction de gestionnaire d'événements pour un ou plusieurs événements aux éléments sélectionnés.
$(document).ready(function () {
$(document).on(".post_thumb_up", 'hover', function () {
$(this).attr("src", "/post_it/static/media/thumb_up_hover.png");
});
$(document).on(".post_thumb_up", 'click', function () {
$(this).attr("src", "/post_it/static/media/thumb_up.png");
});
});
Pourquoi OP devrait-il utiliser .on () code> au lieu de .Cliquez sur () code> / .hover () code> (ce qui vient d'appeler . () code>)?
@Andreas Ce contenu vient d'Ajax alors que Jake a déclaré. Donc, cliquez et survolez l'événement nécessaire. ce temps .on () doit utiliser.
"... comme Jake a dit" i> - dans l'un de ses commentaires sur une autre réponse qu'il a ajouté des heures après votre réponse. Veuillez éditer votre réponse afin que cela indique non seulement "use x" i> mais plutôt "à cause de x vous devez utiliser y" i> avec une véritable explication de x i> et y i>
Comment "... ne fonctionne pas" i> défini? -> Comment puis-je poser une bonne question