欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js客戶端快捷鍵管理類的較完整實現(xiàn)和應(yīng)用

 更新時間:2010年06月08日 00:04:48   作者:  
js客戶端快捷鍵管理類的較完整實現(xiàn)和應(yīng)用,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:

//一個快捷鍵對象
function KeyOne(id, keys, dom, isfun, fun,iskeydown) {
this.id = id;
this.keys = keys;
this.dom = dom;
this.isfun = isfun;
this.fun = fun;
this.isKeydown = iskeydown;
}

//快捷鍵管理類
var KeyConlor = {};
KeyConlor.list = new Array();
//添加一個快捷鍵綁定焦點(diǎn)(當(dāng)快捷鍵被激發(fā)時讓焦點(diǎn)落在指定id對象上)
//使用說明key的值如果是“c,50”則表示“ctrl”和鍵碼為50的組合鍵
// "a,50" 則表示“alt”和鍵碼為50的組合鍵
// "s,50" 則表示“shift”和鍵碼為50的組合鍵
// "50" 則表示鍵碼為50的單鍵(建議使用組合鍵alt)
//id指的是快捷鍵對應(yīng)的焦點(diǎn)對象。
//dom指的是id對象所在的document對象
KeyConlor.addkeyfouse = function(id, key, dom, iskyedown) {
var keyone = new KeyOne(id, key, dom, false, null, iskyedown);
if (KeyConlor.KeyIsOK(keyone)) {
KeyConlor.list.push(keyone);
} else {
alert("快捷鍵"+keyone.keys+"已經(jīng)被注冊 不能重復(fù)注冊了");
return false;
}
};

//快捷鍵綁定方法(當(dāng)快捷鍵激發(fā)時觸發(fā)方法)
KeyConlor.addkeyfun = function(key, fun, iskeydown) {
var keyone = new KeyOne("", key, "", true, fun, iskeydown);
if (KeyConlor.KeyIsOK(keyone)) {
KeyConlor.list.push(keyone)
} else {
alert("快捷鍵:" + keyone.keys + ";已經(jīng)被注冊 .重復(fù)注冊無效");
return false;
}
};

//--刪除一個快捷鍵
//KeyConlor.removeFouseKey = function(id) {
// var keyone = new KeyOne(id, "");
// for (var i = 0; i < KeyConlor.list.length; i++) {
// if (keyone.id == KeyConlor.list[i].id) {
// KeyConlor.list[i] = null;
// }
// }
//};

//--判斷快捷鍵是不是重復(fù)注冊
KeyConlor.KeyIsOK = function(keyone) {
for (var i = 0; i < KeyConlor.list.length; i++) {
if (KeyConlor.list[i].keys == keyone.keys) {
return false;
}
}
return true;
};
document.onkeydown = function() {
for (var i = 0; i < KeyConlor.list.length; i++) {
var keyone = KeyConlor.list[i];
if (!keyone.isKeydown) continue;
var control = keyone.keys.split(",")[0];
switch (control) {
case 's':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.shiftKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
case 'c':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.ctrlKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
case 'a':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.altKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
event.keyCode=0;
break;

default:
//獲得焦點(diǎn)
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.keyCode == code && event.altKey == false && event.ctrlKey == false && event.shiftKey == false) {
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
}
}
};
document.onkeyup = function() {
for (var i = 0; i < KeyConlor.list.length; i++) {
var keyone = KeyConlor.list[i];
if (keyone.isKeydown) continue;
var control = keyone.keys.split(",")[0];
switch (control) {
case 's':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.shiftKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
case 'c':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.ctrlKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
case 'a':
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.altKey == true && event.keyCode == code) {
//獲得焦點(diǎn)
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;

default:
//獲得焦點(diǎn)
var code = keyone.keys.split(",").length > 1 ? keyone.keys.split(",")[1] : keyone.keys.split(",")[0];
if (event.keyCode == code && event.altKey == false && event.ctrlKey == false && event.shiftKey == false) {
if (!keyone.isfun) {
keyone.dom.getElementById(keyone.id).focus();
} else {
keyone.fun();
}
event.keyCode=0;
return false;
}
break;
}
}
};
//常用鍵盤碼
var keyCodeStr = {
Alt: "a",
Shift: "s",
Ctrl: "c",
Up: "38",
Down: "40",
Left: "37",
Right: "39",
Esc: "27",
Enter: "13",
Backspace: "8",
Delete: "46",
Tab: "9",
CapsLK: "20",
Space: "32"
};
[code]
----------以上是js類-------------------------------

[code]
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script src="KyeControl.js" type="text/javascript"></script>
<script type="text/javascript">
KeyConlor.addkeyfun(keyCodeStr.Ctrl+","+"70",function (){alert("哈哈");},true);
KeyConlor.addkeyfouse("2","65",document,true);
</script>
</head>
<body>
<form id="form1" >
<div>
<input type="text" id="2" />
<input type="text" id="3" />
<input type="text" id="4" />
<input type="text" id="5" />
</div>
</form>
</body>
</html>

相關(guān)文章

  • 純JavaScript實現(xiàn)的兼容各瀏覽器的添加和移除事件封裝

    純JavaScript實現(xiàn)的兼容各瀏覽器的添加和移除事件封裝

    這篇文章主要介紹了純JavaScript實現(xiàn)的兼容各瀏覽器的添加和移除事件封裝,本文直接給出實現(xiàn)代碼,代碼中帶詳細(xì)注釋,需要的朋友可以參考下
    2015-03-03
  • 微信小程序城市選擇及搜索功能的方法

    微信小程序城市選擇及搜索功能的方法

    這篇文章主要介紹了微信小程序城市選擇及搜索功能的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 只有 20 行的 JavaScript 模板引擎實例詳解

    只有 20 行的 JavaScript 模板引擎實例詳解

    這篇文章主要介紹了只有 20 行的 JavaScript 模板引擎,結(jié)合實例形式分析了JavaScript 模板引擎實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2020-05-05
  • 一個簡單的全屏圖片上下打開顯示網(wǎng)頁效果示例

    一個簡單的全屏圖片上下打開顯示網(wǎng)頁效果示例

    這是一個簡單的全屏圖片上下打開顯示網(wǎng)頁效果,源碼如下,喜歡的朋友可以練練手
    2014-07-07
  • JavaScript利用el-table實現(xiàn)繪制熱度表

    JavaScript利用el-table實現(xiàn)繪制熱度表

    這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用el-table實現(xiàn)繪制熱度表,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • JS+CSS3模擬溢出滾動效果

    JS+CSS3模擬溢出滾動效果

    這篇文章主要介紹了JS+CSS3模擬溢出滾動效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • View.post() 不靠譜的地方你知道多少

    View.post() 不靠譜的地方你知道多少

    本文給大家分享了view.post()方法不靠譜的地方,以及post在7.0中的差異,需要的的朋友參考下本文吧
    2017-08-08
  • JavaScript變量和變換詳情

    JavaScript變量和變換詳情

    這篇文章主要介紹了JavaScript變量和變換詳情,文章基于JavaScript的相關(guān)資料展開相關(guān)內(nèi)容需要的小伙伴可以慘一下
    2022-04-04
  • Chart.js與ECharts.js圖表使用過程組件對比

    Chart.js與ECharts.js圖表使用過程組件對比

    chartjs只能基于canvas,雖然只有英文文檔,但定制化程度更高,社區(qū)成熟,功能就更加穩(wěn)定,ECharts.js可以基于svg或者canvas去渲染,有融合主流前端框架的社區(qū)庫,另外ECharts.js還支持3d效果的圖表,相當(dāng)炫酷,國內(nèi)開發(fā)者大多數(shù)使用這個,有中文文檔
    2023-10-10
  • Bootstrap精簡教程中秋大放送

    Bootstrap精簡教程中秋大放送

    Bootstrap精簡教程中秋大放送,這篇文章主要為大家分享了最基礎(chǔ)的Bootstrap學(xué)習(xí)教程,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論