作者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