Jquery 多个鼠标器和AJAX调用
我正在创建一个jQuery弹出窗口,当鼠标悬停在用户名上时,它会用AJAX显示用户信息。它起作用了,但只是第一次。如果我将鼠标移出,弹出窗口消失,然后再次将鼠标悬停在用户名上,弹出窗口为空,似乎AJAX调用不会重复多次 有人能告诉我原因吗 编辑:新的清理代码问题仍然没有解决,只是使代码更容易遵循:Jquery 多个鼠标器和AJAX调用,jquery,ajax,Jquery,Ajax,我正在创建一个jQuery弹出窗口,当鼠标悬停在用户名上时,它会用AJAX显示用户信息。它起作用了,但只是第一次。如果我将鼠标移出,弹出窗口消失,然后再次将鼠标悬停在用户名上,弹出窗口为空,似乎AJAX调用不会重复多次 有人能告诉我原因吗 编辑:新的清理代码问题仍然没有解决,只是使代码更容易遵循: $(function(){ var hideDelay = 300; var currentID = 0; var hideTimer = null; var container = $('<d
$(function(){
var hideDelay = 300;
var currentID = 0;
var hideTimer = null;
var container = $('<div id="personPopupContainer">' + '</div>');
var displayPopup = function(){
currentID = $(this).attr('rel');
if (hideTimer != null) {
clearTimeout(hideTimer);
}
var position = $(this).offset();
container.css({
left: position.left + 90 + 'px',
top: position.top + 15 + 'px'
});
$.ajax({
type: 'GET',
url: '/process.cfm',
data: 'id=' + currentID,
success: function(data){
$('#personPopupContainer').html(data);
if ($(data).find('#personPopupResult').length) {
var text = $(data).find('#personPopupResult').html();
$('#personPopupContainer').html(text);
}
}
});
container.css('display', 'block');
}
var hidePopup = function(){
if (hideTimer) {
clearTimeout(hideTimer);
}
hideTimer = setTimeout(function(){
container.css('display', 'none');
}, hideDelay);
}
var allowPopupMouseover = function() {
if (hideTimer) {
clearTimeout(hideTimer);
}
}
$('body').append(container);
$('.personPopupTrigger').live('mouseover', displayPopup);
$('.personPopupTrigger').live('mouseout', hidePopup);
$('#personPopupContainer').mouseover(allowPopupMouseover);
$('#personPopupContainer').mouseout(hidePopup);
}) 我在您的代码中看不到任何地方说,当您悬停时,正在调用Ajax。@AdamHoke它都在$'.personPopupTrigger.live'mouseover'函数中{.What$'.personPopupTrigger.attr'rel'最初设置为,mouseout之后设置为,并且您将display设置为none?您确定在调用ajax之前它不会从函数中返回吗?原因是:var currentID=$this.attr'rel';如果currentID==return;您在开始时声明了两次currentID我还建议您为您的事件创建不同的函数,以便代码更易于阅读/理解。Adam,rel属性最初设置为用户ID,因此当我将鼠标悬停在用户的用户名链接上时,我可以获取它的唯一ID,然后将其传递给process.cfm以处理事件d生成用户配置文件信息以在弹出窗口中输出。我将尝试清理代码并按照您的建议进行操作,完成后更新主题。谢谢