组合if语句
Combining if statements
我正在制作一个简单的HTML5&Javascript拖放游戏,用户应该将div中的图像拖动到空的div中进行定位。
拖放操作正常,当#answer1
被拖动到正确的div #target
中时,我成功地编写了javascript来提醒
然而,当我复制if语句时,它会提醒Correct,但也会提醒Correct,我怀疑这是紧接着运行的第二个if语句。
是否有任何方法可以将语句分离,使其仅在拖动图像时运行,而不是运行所有if语句?
function allowDrop(ev){
ev.preventDefault();
}
function drag(ev){
ev.dataTransfer.setData("content", ev.target.id);
}
function drop(ev){
ev.preventDefault();
var image = ev.dataTransfer.getData("content");
ev.target.appendChild(document.getElementById(image));
if($('#target1').find('#answer1').length == 1)
{
alert("CORRECT!");
} else {
alert("Wrong!");
}
if($('#target2').find('#answer2').length == 1)
{
alert("CORRECT!");
} else {
alert("Wrong!");
}
}
JSFiddle完整网页:
http://jsfiddle.net/hgDFU/1/
function drop(ev){
ev.preventDefault();
var image = ev.dataTransfer.getData("content");
ev.target.appendChild(document.getElementById(image));
alert(checkDrop());
}
function checkDrop() {
if($('#target1').find('#answer1').length == 1){
return "CORRECT!";
}
else if($('#target2').find('#answer2').length == 1) {
return "CORRECT!";
}
else {
return "Wrong!";
}
}
一个选项是只检查有图像的目标。这样可以更容易地在游戏中添加或删除目标,而无需更改drop()
中的代码。
function drop(ev) {
ev.preventDefault();
var image = ev.dataTransfer.getData("content");
ev.target.appendChild(document.getElementById(image));
var targetnum = ev.target.id.replace("target", "");
if($('#target' + targetnum).find('#answer' + targetnum).length == 1)
{
alert("CORRECT!");
} else {
alert("Wrong!");
}
}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 如何在 API 调用后和 if 语句中启用提交按钮
- 带有多个elseif的Javascript if语句
- Sharepoint JScript if语句未执行
- Javascript:If-then语句在函数中不起作用
- for循环中的javascript if语句找不到==
- jquery if语句返回return wong语句
- 在if语句下的html中使用javascript变量
- 将错误与if语句混淆
- 如何检查if/else语句中的随机条件
- 循环通过数组的If语句不起作用
- jQuery模板中的If语句
- 如何从数据库中回显If语句
- 如何减少if语句的数量
- Node.js-承诺和锥形语句(if、switch等)-如何构建
- 如何在嵌套ng重复指令中使用控制语句(if语句)
- 如何创建语句if包含"&"
- If语句- If主体有一个类remove在滚动原生javascript
- Javascript中的if语句- if - else问题