我试图根据所点击的var触发多个点击事件,但是switch语句不起作用。我认为这是Switch参数中的“变量”,但我不知道如何更正它:
var buttonQ = document.getElementById('Heater1button');
var buttonW = document.getElementById('Heater2button');
var buttonE = document.getElementById('Heater3button');
var buttonA = document.getElementById('Heater4button');
var buttonS = document.getElementById('Heater6button');
var buttonD = document.getElementById('OpenHHbutton');
var buttonZ = document.getElementById('KicknHat');
var buttonX = document.getElementById("Kickbutton");
var buttonC = document.getElementById('CClosedHHbutton');
$(document).click(function() {
switch (var) {
case buttonQ:
document.getElementById('Q').play(), $("#displaytext").text("Heater 1")
break;
case buttonW:
document.getElementById('W').play(), $("#displaytext").text("Heater 2")
break;
case buttonE:
document.getElementById('E').play(), $("#displaytext").text("Heater 3")
break;
case buttonA:
document.getElementById('A').play(), $("#displaytext").text("Heater 4")
break;
case buttonS:
document.getElementById('S').play(), $("#displaytext").text("Heater 6")
break;
case buttonD:
document.getElementById('D').play(), $("#displaytext").text("Open HH")
break;
case buttonZ:
document.getElementById('Z').play(), $("#displaytext").text("KicknHat")
break;
case buttonX:
document.getElementById('X').play(), $("#displaytext").text("Kick")
break;
case buttonC:
document.getElementById('C').play(), $("#displaytext").text("Closed HH")
break;
}
})
答案 0 :(得分:2)
您不应使用switch
语句,而应将事件监听器附加到每个元素上。
buttonQ.addEventListener("click", function() {
document.getElementById('Q').play(), $("#displaytext").text("Heater 1");
});
buttonW.addEventListener("click", function() {
document.getElementById('W').play(), $("#displaytext").text("Heater 2");
});
依次选择所有按钮。
答案 1 :(得分:0)
您是正确的,问题出在switch语句内的var
。这指的是什么变量? switch语句用于“检查 a 的结果,并执行 x , y 等之一。在您的示例中,我看不到开关用于评估要运行的大小写的任何名为“ var
”的声明。
无论如何,即使您在代码中的其他位置确实有一个名为var
的变量,它也不起作用,因为这是一个保留字。您不能使用用于命名变量的单词来命名变量。
答案 2 :(得分:0)
您正在打开var,它本身在您提供的代码中似乎不存在。您需要知道单击了什么,因此需要使用jQuery .click()方法提供的内容-“ this”。或者,您可能应该打开$(this).attr(“ id”)。
答案 3 :(得分:0)
像这样吗?
$(document).click(function(e) {
var id = e.target.id;
switch (id) {
case "Heater1button":
document.getElementById('Q').play(), $("#displaytext").text("Heater 1")
break;
case "Heater2button":
document.getElementById('W').play(), $("#displaytext").text("Heater 2")
break;
}
});