gpt4 book ai didi

javascript - ondragover 事件改变颜色

转载 作者:行者123 更新时间:2023-12-03 04:49:14 25 4
gpt4 key购买 nike

这是一段简单的代码,当目标 div 悬停在其上方时,只需更改其边框颜色和背景颜色即可。颜色应该根据拖动的内容而变化,这应该由 ondragstart 决定。然而什么也没有发生,事实上我的光标是不允许的。 (用线穿过圆圈)那么问题是什么。

<!DOCTYPE HTML>
<html>
<head>
<title>Play four-in-a-Row</title>
<meta charset=ütf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="styles.css">
</head>
<div class="container-fluid">
<body onload="boardSetup()">
<div id="header" >
<h1 id = "Main">Four-in-a-Row</h1>
</div>
<hr>
<div id = "drop">
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 1" ondragover = "dragOver(event)" ></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 2" ondragover = "dragOver(event)"></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 3" ondragover = "dragOver(event)"></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 4" ondragover = "dragOver(event)"></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 5" ondragover = "dragOver(event)"></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 6" ondragover = "dragOver(event)"></div>
<div class = "square col-xs-1" data-toggle="tooltip" title = "Column 7" ondragover = "dragOver(event)"></div>
</div>
</div>
<hr>
<div id="board" >
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>
<div class="row">
<div class = "col-xs-1" ></div>
<div class = "col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
<div class = "square col-xs-1" ></div>
</div>

</div>
<div class= "piece">
<img src= "player_1.png" alt= "Player 1 piece" height = 15% width = 15% id = "player1" data-toggle="tooltip" title = "Player one's piece" class ="player1 piece" draggable= "true" ondragstart ="dragStart(event)" > </img>
<img src= "player_2.png" alt= "Player 2 piece" height = 15% width = 15% id = "player2" data-toggle="tooltip" title = "Player two's piece" class = "player2 piece" draggable= "true" ondragstart ="dragStart(event)"> </img>
</div>
<script>
var map;
var dragged = 0;
function boardSetup(){
var board=document.getElementsByClassName("square");
var blank = "<img src = blank.png alt= blank class = blank>";
for(var x = 0; x < board.length; x++){
board[x].innerHTML(blank)
}

document.getElementById("board").innerHTML=board;
var temp2 = document.getElementsByClassName("blank");
for(var z in temp2){
temp2[z].className += " piece";
}
}

function gameStart(){
}


$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});

function dragStart(event) {
event.dataTransfer.setData("text", event.target.id);
if(event.target.id == "player1")
dragged = 1;
else if(event.target.id){
dragged = 2;
}
}

function dragOver(event){
event.preventDefault();
if(draaged = 1){
event.target.style.border = "blue";
event.target.style.background-color = "#59F2F7";
}else if(draaged = 2){
event.target.style.border-clolor = "red";
event.target.style.background-color = " #F75D59";
}
}


</script>
<input type="button" onclick="boardSetup()" value="Reset" class="btn btn-danger btn-block" > </input>
</div>
</body>

<footer>
<hr>
<a href="../index.html">&lt;- Back to launch page</a>
<hr>
<p style= "text-align: right"> done by <br>Justin Michel <br> u14369852</p>
<hr>
</footer>

最佳答案

以下语句不是有效的 Javascript 代码。它们被解释为减法表达式,然后尝试将值分配给没有意义的表达式。您必须将以下行替换为相应的驼峰命名法变体:

  • event.target.style.background-color = "#59F2F7";
  • event.target.style.border-clolor = "red";
  • event.target.style.background-color = "#F75D59";

替换为:

event.target.style.backgroundColor = "#59F2F7";

等等。 (并且不存在 clolor 这样的东西)

另一个错误是 board[x].innerHTML(blank) - innerHTML 不是一个函数。它是一个属性,这里是文档的链接:https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML

如果打开控制台,您可以发现这两个错误。控制台甚至为您提供跳转到代码中有问题的行的链接,这使得调试变得容易。它可能不是完整的解决方案,但修复这些问题对于您的代码正常工作是必要的。问题未提供引用的样式表,因此无法完全回答您的问题(例如,您的“阻止”光标可能是由样式表中的某些样式定义引起的)。

您发布的代码存在更多问题,尽管可能与拖动事件没有直接关系,但仍然值得提出。

img 元素是一个 void(空)元素:在 HTML 中,在空元素上使用结束标记通常是无效的。它不是以 结束,而是以 "/>" 开始标记。 input 元素也是如此。以下是文档链接:https://developer.mozilla.org/en-US/docs/Glossary/Empty_element

body 标签不应该嵌套在 div 内,即使它有效也不是一个好的做法。 https://www.w3.org/TR/html5/sections.html#the-body-element

关于javascript - ondragover 事件改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42734858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com