【问题标题】:how do I display a div after ajax call success next to mouse positionajax调用成功后如何在鼠标位置旁边显示一个div
【发布时间】:2010-01-25 11:01:18
【问题描述】:

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

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

现在,当用户单击 voteup 元素时,投票会使用 jquery 的 ajax 记录(即下面的投票功能)

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

在点击元素 voteup 或 votedown 时,我将投票函数称为

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

这是我写的代码

功能投票(动作,反馈ID) { var $divEmail = $('#divProcessing'); $.ajax({ 类型:'得到', url: 'index.php?client='+$.getUrlVar('client')+'&page=ajax', 数据:{option:'vote',action:action,feedbackId:feedbackId}, 数据类型:'html', 成功:函数(数据,evt) { $divEmail.html(数据) .css({top:evt.pageY, left:evt.pageX}) 。显示(); }, beforeSend: function(){$divEmail.addClass('show_loading_in_center')}, 完成:function(){$divEmail.removeClass('show_loading_in_center')} }); }

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

请帮我在被点击的 img 标签旁边显示 divprocessing。

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

谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

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

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

    收件人:

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

    【讨论】:

    • 感谢您的回复 Max S :),我已经这样做了,但是在投票元素旁边显示响应并不那么好,不是吗?
    • 好吧,如果点击了投票元素,那么鼠标位置将恰好是点击的位置,即图像上/附近。但是,我刚刚注意到您使用了 pageX/pageY,而对于固定 screenX/screenY 会更有意义;已编辑。
    • 我不能使用点击事件来确定位置,因为要确定点击我必须为每个生成的 img 元素创建一个单独的 ID 属性。 :(
    • 我不知道为什么会这样。由于您正在捕获投票的点击事件,因此您只需要该事件的属性即可。图像永远不会以这种方式触摸。
    • :) :) :) :) 谢谢你的评论给了我一个想法。我只是使用 jquery 的 find 方法来查找每个被点击的投票元素,并在每个匹配的元素旁边显示 div 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2021-08-24
    • 2013-04-19
    • 2016-07-23
    • 2014-06-29
    • 2014-10-30
    • 2013-01-13
    相关资源
    最近更新 更多