作者robinnpca (rob)
看板Ajax
标题[问题] 请问opera下的失焦
时间Fri Nov 18 08:48:54 2011
有两个问题请教
1.
focuEle.bind('mouseup',function (e){....}
我想说除了按下mouseup外,还要在其他地方也呼叫这个function
是否可以
focuEle.bind('mouseup',function mouseleave(e){...}
是否这样子就可以呼叫到?
mouseleave(e); 目前跑不出来...在下面的例子 失去焦点时
2.在Firefox中
我在mousedown 时
用了if(moveEle.get(0).setCapture){
moveEle.get(0).setCapture();
}
然後在mouseup时(就 1. 的问题中)
if(moveEle.get(0).releaseCapture)
{
moveEle.get(0).releaseCapture();
}
在firefox中拖曳离开了 可视区域到整个firefox外都可以拖曳
放开滑鼠时就会启动mouseup事件没有问题...
但在opera中
却会变成在可视区域外也可拖曳但是却无法感应到mouseup事件
变成所谓的失焦..将滑鼠移回视窗中
会变成继续拖曳....(此时没有按下滑鼠)
我试过
(1)加入
addEventHandler(moveEle.get(0), "losecapture", mouseleave(e));
在mousemove function中没有作用...
(2)加入
<div id="拖曳DIV层" onlosecapture=mouseleave(e) >也没有作用...
请教如何兼容firefox和opera的函数或写法!感谢!
个人是觉得问题在呼叫不到mouseleave函数的关系!
不知道有什麽方式可以呼叫到此函数
还是要用其他写法?
补充:
刚刚想了一个笨方法
就是在mouseup函数内在包一个函数 ..但是有问题的是
要如何去叫函数中的函数...
focuEle.bind('mouseup',function (e){
mouseleave();
function mouseleave(){ //在多用一个function去把他包起来?但是呼叫不到...
alert("进入mouseleave");
.....} //mouseleave的end
}//mouseup的end
PS:这里也试过window.mouseleave=function(){} 全域的window函数也call不到?
在另外的mouse移动限定范围(都在同一个document.ready里面....)
一旦超过启动
mouseleave();
但是这一个call不到mouseleave函数(mouseup函数内的函数)s
如何去呼叫函数中的函数呢?
--
宁愿天空是蓝色~
也不愿心情是蓝的!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.17.52.209
※ 编辑: robinnpca 来自: 163.17.52.209 (11/18 10:46)