JavaScript - 拖放

标签 javascript

我目前正在做一个 tic tac toe javascript 拖放项目,但我在让它决定谁赢得了游戏时遇到了麻烦。如果有人可以将我推向正确的方向,那就太好了!(代码如下)

我想做的是,当我将一个 x(在我的例子中是一条龙)和 o(一只老鼠)放入我创建的一个方 block 中时,我希望它检测到它在那里,所以我可以创建这样的东西

(首先drag1 =龙图像的id,drag2是老鼠的img id)

if(sq1 == drag1 && sq2 == drag1 && sq3 == drag1){
  alert("Dragon Wins!");
}
else if (sq4 == drag1 && sq5 == drag1 && sq6 == drag1){
  alert("Dragon Wins!");
}

等等......

那么我该如何开始,以便方 block 检测其中的图像?

提前致谢。

最佳答案

实际上有多种方法可以实现这一目标。一种简单的方法是查看您传递的图像标签的 src 属性:

function drop(ev) {
    var data = ev.dataTransfer.getData("Text");
    var yourImageTag = document.getElementById(data);

    if (yourImageTag.src.match(/dragon/)) {
        //handle case dragon here
    }
    else {
        //handle case for rat here
    }

    //your code for adding the image to the table row

}

虽然这应该可行,但还有一些更好的解决方案,在我看来,这些解决方案更加强大。

您可以向图像标记添加数据属性,并在需要决定时使用 jQuery 获取它。

<img data-type="dragon" src="..."> //this would go in your html markup
var imageType = $(yourImageTag).data('type'); //this would go in your drop function

另一种方法是在开始拖动 dataTransfer 对象时设置其类型。

关于JavaScript - 拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825982/

相关文章:

javascript - 如何使用基本运算符检查字符串的数学表达式?

javascript - 如何在MVC中使用cryptoJs解密代码中的加密值

javascript - IE脚本5008 : Invalid Left-hand Side in asignment

javascript - JS DOM : Get elements by text content

javascript - 如何从 JSON 值创建动态表?

javascript - ajax 到 php post - 所有发送和接收但 php 失败

javascript - 正则表达式用拉丁语中的重音字符拆分单词

javascript - 以 html post 形式存储重置密码 token 是否安全?

javascript - JavaScript 中的工厂模式

javascript - highstock,如何防止图表重新缩放