JavaScript - "Húzd és ejtsd" értéknöveléssel
Sziasztok!
Készítettem egy "fogd és ejtsd" alkalmazást. Azt szeretném megvalósítani, hogy ha valamelyik ételt a kosárhoz húzzák akkor egy függvényhez, aminek az eredeti értéke 0, hozzárendeljük a termék árát, pl. 2.50€ = Döner; 3,50 = Dürüm; ...
A végén pedig kiírjuk a függvény értékét.
Kérlek segítsetek, hogy ez miként lenne megoldható!
A segítséget előre is köszönöm!
■ Készítettem egy "fogd és ejtsd" alkalmazást. Azt szeretném megvalósítani, hogy ha valamelyik ételt a kosárhoz húzzák akkor egy függvényhez, aminek az eredeti értéke 0, hozzárendeljük a termék árát, pl. 2.50€ = Döner; 3,50 = Dürüm; ...
A végén pedig kiírjuk a függvény értékét.
Kérlek segítsetek, hogy ez miként lenne megoldható!
A segítséget előre is köszönöm!
<html>
<head>
<title>Drag and Drop</title>
<link rel="stylesheet" type="text/css" href="dragdrop.css">
<script language="javascript" type="text/javascript"
src="dragdrop.js">
</script>
</head>
<body>
<div class="drag" id="drag1">
<h3>Döner</h3>
<p><img src="images/doener.png" border="0" width="270px" /></p>
</div>
<div class="box">
<p>Kosár</p>
</div>
<div class="drag" id="drag2">
<h3>Dürüm</h3>
<p><img src="images/dueruem.jpg" border="0" width="270px" /></p>
</div>
</body>
</html>
.drag {
position: absolute;
width: 300px;
border: 2px solid black;
border-top: 20px solid black;
top: 100px;
padding: 5px;
}
#drag1 { left: 20px; }
#drag2 { left: 190px; }
#drag3 { left: 360px; }
#drag4 { left: 530px; }
.box { position: releative; float: left; margin: 0 auto 0 auto; width: 300px; height: 300px; bgcolor: #33333; }
var obj,x,y,dx,dy;
function Setup() {
if (!document.getElementsByTagName) return;
divs = document.getElementsByTagName("DIV");
for (i=0; i<divs.length; i++) {
if (divs[i].className != "drag") continue;
divs[i].onmousedown = Drag;
}
}
function Drag(e) {
if (!e) var e = window.event;
obj = (e.target) ? e.target: e.srcElement;
obj.style.borderColor="red";
dx = x - obj.offsetLeft;
dy = y - obj.offsetTop;
}
function Move(e)
if (!e) var e = window.event;
if (e.pageX) {
x = e.pageX;
y = e.pageY;
} else if (e.clientX) {
x = e.clientX;
y = e.clientY;
} else return;
if (obj) {
obj.style.left = x - dx;
obj.style.top = y - dy;
}
}
function Drop() {
if (!obj) return;
obj.style.borderColor="black";
obj = false;
}
document.onmousemove = Move;
document.onmouseup = Drop;
window.onload = Setup;
Kiszámolod
Másik megközelítés
document
és a célpontmouseup
/mousemove
eseményét figyeled, és itt megnézed, hogy milyen objektum volt amouseup
/mousemove
célpontja. Ekkor az esemény általában több objektumon is végigmegy, ezért vizsgálni kell, hogy mi az esemény eredeti célpontja. Egy kevés kísérletezéssel rá lehet jönni, hogy mi az optimális megoldás. A böngészők eseménykezelésében való különbségeket ekkor természetesen neked kell megoldanod, ezért is érdemes valami keretrendszert használni, ami ezeket a problémákat megoldja helyetted.