0 votes

Comment afficher une div après le succès d'un appel ajax à côté de la position de la souris ?

La question que je pose ici est quelque peu similaire à la question posée à l'adresse suivante ici mais j'essaie de définir les propriétés à la fin de la requête ajax.

La page affiche tous les commentaires dans un "ul li", chaque commentaire a deux éléments de vote "voteup" et "votedown".

Lorsque l'utilisateur clique sur l'élément voteup, le vote est enregistré à l'aide de la fonction ajax de Jquery (c'est-à-dire la fonction vote ci-dessous).

Le texte de la réponse est inséré dans la div "divProcessing".

sur le clic de l'élément voteup ou votedown, j'appelle la fonction vote comme suit

vote('{$feedback.id},'voteup');

Voici le code que j'ai écrit

function vote(action,feedbackId)
            {
                var $divEmail = $('#divProcessing');

                $.ajax({
                    type: 'get',
                    url: 'index.php?client='+$.getUrlVar('client')+'&page=ajax',
                    data: {option: 'vote', action: action, feedbackId: feedbackId},
                    dataType: 'html',
                    success: function(data,evt)
                    {
                        $divEmail.html(data)
                        .css({top:evt.pageY, left:evt.pageX})
                        .show();
                    },
                    beforeSend: function(){$divEmail.addClass('show\_loading\_in\_center')},
                    complete: function(){$divEmail.removeClass('show\_loading\_in\_center')}
                });
            }

Tout fonctionne bien ici, mais j'ai besoin d'afficher ce "divProcessing" près de l'élément de vote qui est cliqué (ou près de la position de la souris).

Je ne sais pas si j'ai besoin d'aide, mais j'ai besoin de savoir si j'ai besoin d'une aide pour la mise en place d'un système d'information.

J'espère pouvoir expliquer clairement ma question.

Merci de votre attention.

1voto

Max Shawabkeh Points 19030

Il peut être utile de définir le CSS position de l'élément à fixed . Cela positionnera l'élément par rapport à l'écran, quel que soit l'endroit où l'élément est défini et quel que soit le degré de défilement de la page. Pour ce faire, il faut passer de :

.css({top:evt.pageY, left:evt.pageX})

A :

.css({position:'fixed', top:evt.screenY, left:evt.screenX})

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X