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;
|
|||
|
}
|
|||
|
}
|