楼主的测试环境是什么?
我在IE6下测试时,无论有没有window.event.returnValue都不响应。
下知道IE7是不是有了处理。如果希望响应,请在鼠标按下的时候使用 obj.setCapture,
在mouseup的时候使用releaseCapture.
我在IE6下测试时,无论有没有window.event.returnValue都不响应。
下知道IE7是不是有了处理。如果希望响应,请在鼠标按下的时候使用 obj.setCapture,
在mouseup的时候使用releaseCapture.
解决方案 »
- js读取文本到textarea中,为什么同样的代码放到服务器上为何就不行
- javascript 制作在线测试题的问题
- 很简单的获取单项的js代码运行不了?
- 关于setTimeout的问题,为什么随便加一句alert("abc")就可以执行?
- 求救,为什么对不齐啊?
- window.open 中 URL 的最大长度问题
- 在js中如何比较两个时间字符串的大小
- 主页面里有iframe,然后主页有按钮提交iframe的form,如何让iframe的from提交时执行一段javascript代码
- SOS!SOS!SOS!SOS!SOS!SOS!在先等待30分钟。
- 用 opener 开新窗口问题
- 下面的程序错在哪里了 为什么网页提示错误 vs2005 没有提示错误 打开网页没有任何显示
- 谁帮我改个JS翻页,下面的JN倒过来了````谢谢
我的是ie6啊,是不是你没有修改我代码里的 window.event.returnValue=false;
我本来想显示成红色,却变成了这样。
<head>
<script language="javascript">
var oldx;
var oldy;
var startx;
var starty;
var newx;
var newy;
//图片的位置
var picleft;
var pictop;
//图片的高和宽
var imagehigh;
var imagewidth;function mapmousedown()
{ oldx=window.event.clientX+document.body.scrollLeft;
oldy=window.event.clientY+document.body.scrollTop;
startx=parseInt(document.all.mapImage.style.left);
starty=parseInt(document.all.mapImage.style.top); window.event.returnValue=false;
}
function mapmousemove()
{
if(window.event.button==1){
pan(startx,starty,oldx,oldy);
}
window.event.returnValue=false;
}
function mapmouseup()
{
alert("响应!")
window.event.returnValue=false;
}function pan(sx,sy,ox,oy){//平移move函数
var Pnewx;
var Pnewy;
Pnewx = sx + (window.event.clientX - ox);
Pnewy = sy + (window.event.clientY - oy);
var imagehigh=parseInt(document.all.mapImage.style.height);
var imagewidth=parseInt(document.all.mapImage.style.width);
if (window.event.clientX < imagewidth && window.event.clientY < imagehigh)
{
document.all.mapImage.style.left=Pnewx;
document.all.mapImage.style.top=Pnewy;
}}</script>
</head>
<body><IMG src="奖牌榜地理分布.bmp" name="mapImage" id="mapImage" style="POSITION:absolute;LEFT:0px;width:300px;height:300px;TOP: 0px" GALLERYIMG="false" > <script language="javascript">
window.onload=function()
{
picleft=parseInt(document.all.mapImage.style.left);
pictop=parseInt(document.all.mapImage.style.top);
imagehigh=parseInt(document.all.mapImage.style.height);
imagewidth=parseInt(document.all.mapImage.style.width);
document.all.mapImage.onmousemove=mapmousemove;
document.all.mapImage.onmouseup=mapmouseup;
document.all.mapImage.onmousedown=mapmousedown; }
</script>
</body>
</HTML>
我前面的写错了,是mapmousedown、mapmousemove和mapmouseup事件里必须都加上window.event.returnValue=false;但是为什么注释掉后,当鼠标移出(0,0,300,300)这个范围后就不响应up事件?
具体内部实现是什么样子的不得而知。加上window.event.returnValue=false; 后事件处理链上的后续处理就不会继续进行。
因此,猜想不加这条语句的时候,
后续的处理会打断mapImage的消息处理循环。
进入到其它对象的消息处理循环。
从而使mouseup事件为其它对象所捕获。
我试验过了的确是这样。那么咱们先撇开这个问题,您就据个例子介绍一下window.event.returnValue=false
的作用吧。
其实和别的地方的介绍应该差不多.
不过这里介绍的知识比较系统.
因此向你推荐一下.等有时间谈谈关于这个问题我个人的理解.