如何在ajax调用成功后在鼠标位置旁边显示div

时间:2010-01-25 11:01:18

标签: jquery

我在这里发布的问题与发布的问题here有些类似,但我试图在完成ajax请求时设置属性。

该页面显示'ul li'中的所有反馈,每个反馈都有两个投票元素'voteup'和'votedown'

现在当用户点击voteup元素时,使用jquery的ajax记录投票(即下面的投票函数)

响应文本填充在'divProcessing'div。

点击元素投票或投票时,我将投票功能称为


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

这是我写的代码

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

这里的一切工作正常,但我需要在点击投票元素(或鼠标位置附近)附近显示“divProcessing”。

请帮我显示正在点击的img标记旁边的divprocessing。

我希望我能够清楚地解释我的问题。

感谢

1 个答案:

答案 0 :(得分:1)

您可能希望将元素的CSS position设置为fixed。这将使元素相对于屏幕定位,无论元素在何处定义以及页面如何滚动。这可以通过切换:

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

要:

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