javascript - 组合 if 语句

标签 javascript jquery html

我正在制作一个简单的 HTML5 和 Javascript 拖放游戏,用户应将 div 内的图像拖放到空 div 中。

拖放工作正常,并且我已成功编写 JavaScript 代码,以便在将 #answer1 拖入正确的 div #target 时发出警报

但是,当我复制 if 语句时,它会警告正确,但也会警告不正确,我怀疑这是紧随其后运行的第二个 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/

最佳答案

正如 Ghillied 在评论中所说,这将是更好的做法:

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

关于javascript - 组合 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239106/

相关文章:

javascript - Jquery Extend() 合并匿名对象,但不合并我的类的实例

javascript - 使用AJAX直接发送html5 textarea不用html <form>

javascript - 强制 IFrame 中的任何 HREF 使用其父级作为目标

javascript - 获取标题文本的值(HTML,CSS)

PHP eval 与 AJAX 一起使用时生成 500 错误?

javascript - S3 jQuery objectProperties 文件(键)命名和路径?

javascript - 是否有一种快捷方法可以防止两个独立的 javascript/jquery 片段相互冲突或影响?

javascript - 附加新的 html 内容时如何删除旧的 html?

javascript - 如果输入字段已填充,则删除父类

javascript - 仅显示路线上的一个组件并隐藏所有其他组件