0
votes

JQuery Code ne modifiera pas les attributs de la balise HTML sur l'appel Ajax

Quelqu'un peut-il me dire pourquoi le prochain code JQuery ne fonctionne pas. Je l'ai déjà essayé en dehors du bloc $ (document) .Ready bloc et qui ne fonctionne pas non plus

Remarque: le bizarre "{{}}" et "{%%}", est typiquement django

jQuery xxx

html: xxx

merci


1 commentaires

Comment "... ne fonctionne pas" défini? -> Comment puis-je poser une bonne question


3 Réponses :


-1
votes

Essayez d'utiliser Settimeout

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)
});


0 commentaires

0
votes

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.

Je soupçonne que cela pourrait être un cas.


5 commentaires

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 . Quand je suis à la maison.


@Jake "... avec un appel Ajax" - ces informations ont faire partie de votre question.



0
votes

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");
    });

});


3 commentaires

Pourquoi OP devrait-il utiliser .on () au lieu de .Cliquez sur () / .hover () (ce qui vient d'appeler . () )?


@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" - 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" mais plutôt "à cause de x vous devez utiliser y" avec une véritable explication de x et y