【发布时间】:2017-07-25 13:38:02
【问题描述】:
基于问题press and hold button javascript 和小提琴http://jsfiddle.net/0bs3omjj/1/ 我想将代码更改为另一个场景。我想检查 button1 是否为 onmousedown - 按住 - onmouseup,如果是...查询选择器应更改为下一个按钮
我试过了
<div id="myDIV">
<button class="myButton">button 1</button>
<button class="myButton">button 2</button>
<button class="myButton">button 3</button>
<button class="myButton">button 4</button>
</div>
和 JavaScript
var mouse_is_down = false;
var current_i = 0;
var buttoncounter = 1;
var button = "";
var buttoncount = 0;
function changebutton() {
var x = document.getElementById("myDIV").querySelectorAll(".myButton");
x[buttoncount].style.backgroundColor = "red";
button = x[buttoncount];
buttoncount++;
}
changebutton();
button.onmousedown = function(){
mouse_is_down = true;
console.log("mousedown" + buttoncounter);
setTimeout(
(function(index){
return function(){
if(mouse_is_down && current_i === index){
//do thing when hold
console.log("hold" + buttoncounter);
console.log(button);
}
};
})(++current_i), 500); // time you want to hold before fire action
};
button.onmouseup = function(){
mouse_is_down = false;
current_i++;
console.log("onmouseup" + buttoncounter);
console.log("change selector");
buttoncounter++;
changebutton();
console.log(button);
};
但查询选择器仅响应第一个按钮(单击并按住) - 但 javascript 会更改其他按钮的颜色值。怎么了?
【问题讨论】:
-
ID 必须是唯一的。
-
我想检查 button1 是否为 onmousedown - 按住 - onmouseup 如果是...查询选择器应该更改为下一个按钮 嗯?不知道你在说什么。
-
投票以拼写错误/暂时关闭。从屋顶喊它:ID 必须是唯一的。
-
浏览器应该停止渲染包含重复 ID 的网站,这是他们学习的唯一方法。
-
id 在第一个函数 changebutton() 中更改 - 所有具有相同 id 的按钮都被计算在内...如果调用该函数,则 x 变量被计数 - 但是,它的工作原理是远,因为按钮的颜色变了……但我只能按第一个按钮……
标签: javascript button selector state