如何连续按下 2 个按钮时输出消息

How to output message when 2 buttons have been pressed consecutively

本文关键字:按钮 消息 输出 何连续 连续      更新时间:2023-09-26

嗨,我是javascript的新手,并且弄乱了它。当一个接一个地按下 2 个按钮时,我如何(如果可能)显示输出?

示例:单击按钮 1,单击按钮 2

,消息显示"按钮 1 和 2 已被单击"

if语句中使用&&运算符。

Javascript:

var button1 = false;
var button2 = false;
var b1_id = document.getElementById('button1');
var b2_id = document.getElementById('button2');
b1_id.addEventListener('click',click1,false);
function click1() {
    alert("Button1 clicked");
    button1 = true;
    check();
}
b2_id.addEventListener('click',click2,false);
function click2() {
    alert("Button2 clicked");
    if (button1 !== false) button2 = true; //this is to make sure they are clicked consecutivley
    check();
}
function check() {
    if (button1 === true && button2 === true) {
        alert("Button1 and Button2 clicked consecutively");
    }
}

.HTML:

<input type='button' id='button1' value='button1' />
<input type='button' id='button2' value='button2' />

js小提琴

<p id="status"></p>
<button id="btn1" onclick="clickfun(this);">button 1</button>
<button id="btn2" onclick="clickfun(this);">button 2</button>

<script>
clickfun(elm){
var currenthtml = document.getElementById('status').innerHTML;
document.getElementById('status').innerHTML = currenthtml += this.id+' clicked !';
}
</script>

实际上,我只是编写了一个专门用于鼠标对象的库。有一件事是跟踪按下了哪些按钮,并且主要遵循DOM3规范。

https://github.com/Benvie/Mouse

归结为最低限度,如果浏览器不提供"按钮"属性,您必须持续跟踪缪斯到现在,到目前为止只有 Firefox 15 提供。特别是,鼠标向下开始,然后单击和上下文菜单结束。

跟踪按钮的关键位是

var buttons = 0;
function down(e){ buttons |= 1 << e.button; }
function up(e){ buttons &= ~(1 << e.button); }
window.addEventListener('click', up);
window.addEventListener('contextmenu', up);
window.addEventListener('mousedown', down);