77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
/**************************************
|
||
文件名:listener.js
|
||
功能:该模块用于处理事件监听相关内容
|
||
版本:2.0(23.01.08)
|
||
**************************************/
|
||
|
||
/**************************************
|
||
对象名:Listener
|
||
参数:lang: 传入语言, grid: 传入grid对象
|
||
**************************************/
|
||
function Listener(lang, grid){
|
||
//在设置监听的匿名函数中,“this”不是指代的Listener对象,必须单独获取
|
||
let self = this;
|
||
//获取语言
|
||
this.lang = lang;
|
||
//获取grid对象
|
||
this.grid = grid;
|
||
//获取所有返回按钮
|
||
this.back = document.querySelectorAll(".back");
|
||
//获取所有新游戏按钮
|
||
this.newBtn = document.querySelectorAll(".new");
|
||
//监听输入框旁的确认按钮
|
||
this.confirm = document.querySelector(".confirm");
|
||
|
||
//监听返回按钮点击事件
|
||
for (let i = 0; i < this.back.length; i++){
|
||
this.back[i].addEventListener("click", function(){
|
||
window.open(`./menu.html?lang=${self.lang}`, "_self");
|
||
});
|
||
}
|
||
|
||
//监听新游戏按钮点击事件
|
||
for (let i = 0; i < this.newBtn.length; i++){
|
||
this.newBtn[i].addEventListener("click", function(){
|
||
self.grid.restart();
|
||
})
|
||
}
|
||
|
||
//监听确认按钮点击事件
|
||
this.confirm.addEventListener("click", function(){
|
||
self.grid.rankConfirm();
|
||
})
|
||
|
||
//监听tile点击事件
|
||
for (let i = 0; i < this.grid.hSize; i++){
|
||
for (let j = 0; j < this.grid.wSize; j++){
|
||
let theTile = document.querySelector(`.tile-${i}-${j}`);
|
||
|
||
theTile.addEventListener("click", function (){
|
||
if(self.grid.now == "Waiting"){
|
||
self.grid.start();
|
||
}
|
||
|
||
self.grid.click(i, j);
|
||
});
|
||
|
||
theTile.addEventListener("contextmenu", function (){
|
||
self.grid.rightClick(i, j);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
//屏蔽右键菜单
|
||
document.oncontextmenu = function (event){
|
||
if(window.event){
|
||
event = window.event;
|
||
}try{
|
||
var the = event.srcElement;
|
||
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
|
||
return false;
|
||
}
|
||
return true;
|
||
}catch (e){
|
||
return false;
|
||
}
|
||
} |