一个html的控件,当鼠标停在上面,onMouseOver就会js方法A(),
这个方法是这么写的:
function A(){
$.ajax({
type:"POST", //post请求
url:"url", //交互的后台url
async:true, //选择异步,这也是默认值
data:{数据}, //传输的数据
success:function(result){ //成功后的回调函数
alert(result);
}
});
}
现在问题是:
当鼠标停在html控件上(一直放着不那周),那么ajax请求会一直跟后台交互,从页面上看就是说一直alert(result)(关掉一个又弹一个,debug发现会不停后台发请求)。
请问这到底是为什么?我该设置为async:false后就一切正常了,但是既然用ajax,当然想用异步效果了,请问该如何做?
你的这个代码不对。
当鼠标移到该段文字上方,弹出alert框,你的主浏览器window就失去焦点了。等你按回车关闭alert框,鼠标回到主浏览器window,自然又重新触发onmouseover了。
尝试用如下代码:
[code="java"]
[/code]
把alert变为向div内写内容,你会发现,result div内的内容不变,而你移动鼠标重新触发onmouseover,时间戳会改变。
我试验了下,鼠标移上去只会触发一次mouseover事件.是不是你触发A的代码有问题,导致不停的发请求
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
在IE8,firefox下测试了一下,jquery的mouseover没问题,ajax请求正常,没看到楼主说的问题,建议换个浏览器在测试一下,建议使用firefox
TIPS? 我记得mouseover 不会一直发吧, Doctype 问题? 发送之前检查下TIPS 信息是否实例化
鼠标是不是有问题?有时候鼠标在不平整表面上,系统会认为鼠标有微小移动。。
难道你遇上了事件冒泡的问题?