作者scribeTW (scribe)
看板Ajax
标题Re: [问题] 请问opera下的失焦
时间Sat Nov 19 00:06:52 2011
※ 引述《robinnpca (rob)》之铭言:
: 有两个问题请教
: 1.
: focuEle.bind('mouseup',function (e){....}
: 我想说除了按下mouseup外,还要在其他地方也呼叫这个function
: 是否可以
: focuEle.bind('mouseup',function mouseleave(e){...}
: 是否这样子就可以呼叫到?
: mouseleave(e); 目前跑不出来...在下面的例子 失去焦点时
.bind第二个参数是传入Function,你不必一直钻牛角尖而忘记了最原始的方法。
请看例子
http://jsbin.com/axarok/2/edit
function mouseleave(e){
// Do something
$('#hello').text("Huh?");
}
focuEle.bind('mouseup', mouseleave);
要重复使用当然就是直接定义而不是用Anonymous function啊。
: 2.在Firefox中
这个问题大概是浏览器相关,我没特别看,先跳过。
: addEventHandler(moveEle.get(0), "losecapture", mouseleave(e));
^^^^^^^^^^^^^
你这样变成先直接执行mouseleave这个函式(e为参数),
并将执行结果当作addEventHandler的第三个参数去了,绝对不是你预期的结果。
要也是上面例子的做法,直接传function。
: <div id="拖曳DIV层" onlosecapture=mouseleave(e) >也没有作用...
^^^^^^^^^^^^^
同上,应该直接用mouseleave即可。
e是事件驱动之後自动传进来的参数,你不必自己传。做法上也不对。
: 就是在mouseup函数内在包一个函数 ..但是有问题的是
: 要如何去叫函数中的函数...
: focuEle.bind('mouseup',function (e){
: mouseleave();
: function mouseleave(){ //在多用一个function去把他包起来?但是呼叫不到...
: alert("进入mouseleave");
: .....} //mouseleave的end
: }//mouseup的end
怎麽不乾脆考虑把 function mouseleave() 整个定义抽到外面?
这样的话
function mouseleave(e){
// ...
}
focuEle.bind('mouseup', function(e){
mouseleave(e);
});
结果应该跟1.一样。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.127.122.181
1F:→ weiyucsie:其实我看不懂他在写什麽XD 11/19 00:43
2F:推 robinnpca:抱歉表达比较不好!真的是自己钻牛角间了..感谢详尽的回 11/19 08:27
3F:→ robinnpca:应..thanks scribTW ^^ 11/19 08:27
4F:推 robinnpca:目前测试opera的失焦函数好像都不能用包括losecapture、 11/19 09:41
5F:→ robinnpca:blur等 opera有其他函数用吗?找不太到..请问 11/19 09:42
6F:推 robinnpca:突然发现setcapture根本在opera就无效,FF不用setcapture 11/19 10:13
7F:→ robinnpca:本来就可以在浏览器外继续拖曳...opera有方法在视窗外 11/19 10:14
8F:→ robinnpca:拖曳吗? 11/19 10:14
10F:→ weiyucsie:看来你说的losecapture是MS-specific events 11/19 19:51
11F:推 robinnpca:恩!感谢你!上面我也找不到可用的类似『失焦』的opera 11/19 20:09
12F:→ robinnpca:可用语法... 11/19 20:09
13F:→ weiyucsie:失焦... 我是想到blur... 不过你说blur不能用XD 11/22 22:53