return false,對阻止事件默認動作的一些測試代碼
更新時間:2010年11月17日 20:37:20 作者:
很明顯我們每個函數(shù)都返回false,如果返回值可以阻止事件默認動作,那么文本框?qū)o法輸入任何內(nèi)容。
看下面我測試的結(jié)果,注意紅的部分。
首先頁面上有一個 <textarea id="test"></textarea>
我們?yōu)槠浣壎ㄒ韵率录?
test.onkeydown = function(){
return false;
}
test.onkeyup = function(){
return false;
}
test.onkeypress = function(){
return false;
}
我們分別注釋掉其中的兩個事件,每次測試僅綁定一個事件。
很明顯我們每個函數(shù)都返回false,如果返回值可以阻止事件默認動作,那么文本框?qū)o法輸入任何內(nèi)容。
看下面我測試的結(jié)果,注意紅的部分。
最后我分別把事件綁定兩次,每次返回false看是否能阻止默認動作。
還是用了一個a標記測試onclick 返回false 是否跳轉(zhuǎn)。
可以看出瀏覽器表現(xiàn)確實不太一樣,當然IE是最麻煩的東西了。
最意外的是在oper中 綁定down 返回false,居然也不能阻止默認動作。
所以以后在寫要阻止瀏覽器默認動作的時候,還用標準的方法比較好。(后面我提供了)
不然在多人協(xié)作的工作中,會相當麻煩。
演示的deom 有需要的可以發(fā)郵件給我。我就不貼上來了。
/* * 用下面的代碼就不會發(fā)生悲劇了
* 最終結(jié)論
* E(e).stop(); 阻止時間冒泡
* E(e).prevent();阻止時間默認行為
*/
var E = function(e){
e = window.event || e;
return {
stop: function() {
if (e && e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true
},
prevent: function() {
if (e && e.preventDefault) e.preventDefault();
else e.returnValue = false
}
}
}
我們?yōu)槠浣壎ㄒ韵率录?
復制代碼 代碼如下:
test.onkeydown = function(){
return false;
}
test.onkeyup = function(){
return false;
}
test.onkeypress = function(){
return false;
}
我們分別注釋掉其中的兩個事件,每次測試僅綁定一個事件。
很明顯我們每個函數(shù)都返回false,如果返回值可以阻止事件默認動作,那么文本框?qū)o法輸入任何內(nèi)容。
看下面我測試的結(jié)果,注意紅的部分。
最后我分別把事件綁定兩次,每次返回false看是否能阻止默認動作。
還是用了一個a標記測試onclick 返回false 是否跳轉(zhuǎn)。
| 偵聽事件返回 false 是否阻止事件默認動作 | |||||
|---|---|---|---|---|---|
| chrome | IE-8 | firfox | oper | Safari | |
| onkeydown | yes | yes | yes | no | yes |
| onkeyup | no | no | no | no | no |
| onkeypress | yes | yes | yes | yes | yes |
| onclick | yes | yes | yes | yes | yes |
| keydown * 2 | no | 取最后的FN結(jié)果 | no | no | no |
| keypress * 2 | no | 取最后的FN結(jié)果 | no | no | no |
| click * 2 | no | 取最后的FN結(jié)果 | no | no | no |
| e.preventDefault(); | yes | no | yes | yes(keydown:no) | yes |
| e.returnValue = false | no | yes | no | no | no |
可以看出瀏覽器表現(xiàn)確實不太一樣,當然IE是最麻煩的東西了。
最意外的是在oper中 綁定down 返回false,居然也不能阻止默認動作。
所以以后在寫要阻止瀏覽器默認動作的時候,還用標準的方法比較好。(后面我提供了)
不然在多人協(xié)作的工作中,會相當麻煩。
演示的deom 有需要的可以發(fā)郵件給我。我就不貼上來了。
復制代碼 代碼如下:
/* * 用下面的代碼就不會發(fā)生悲劇了
* 最終結(jié)論
* E(e).stop(); 阻止時間冒泡
* E(e).prevent();阻止時間默認行為
*/
var E = function(e){
e = window.event || e;
return {
stop: function() {
if (e && e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true
},
prevent: function() {
if (e && e.preventDefault) e.preventDefault();
else e.returnValue = false
}
}
}
相關文章
基于uni-app開發(fā)刻度尺組件的實現(xiàn)示例
本文主要介紹了基于uni-app開發(fā)刻度尺組件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
前端js實現(xiàn)文件的斷點續(xù)傳 后端PHP文件接收
這篇文章主要為大家詳細介紹了斷點續(xù)傳的簡單例子,前端文件提交,后端PHP文件接收,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
11種JavaScript前端數(shù)據(jù)去重方式總結(jié)
這篇文章主要為大家總結(jié)了JavaScript去重的11種方式,各有優(yōu)缺點,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以根據(jù)需求合理使用2023-06-06
JS中style.display和style.visibility的區(qū)別實例說明
下面的例子說明了這種區(qū)別:在這個例子中,divContent1和divContent2隱藏的時候用的是style.display=none,這時候,后面的div會向上移動,占據(jù)已經(jīng)隱藏的div的空間。divContent3和divContent4用的是style.visibility=hidden來隱藏,但是其隱藏后仍然占據(jù)原來的空間2013-03-03
js二維碼生成插件jquery.qrcode.js如何自定義LOGO
介紹如何將jquery.qrcode.min.js與jquery集成到網(wǎng)頁中,生成帶LOGO的二維碼,提供了修改代碼以支持LOGO上傳的步驟,并給出注意事項以確保二維碼的識別效果2024-11-11

