I tried to write a program in JavaScript using Jquery, in which I can use mouse to drag buttons, source codes are as follow:
<!DOCTYPE html>
<html>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var i = 1
// while (i < 6) {
$("#c"+i).mousedown(function(e) {
var isMove = true
var px = e.pageX
var py = e.pageY
x = parseInt($("#c"+i).css("right"))
y = parseInt($("#c"+i).css("bottom"))
$(document).mousemove(function(e) {
if (isMove) {
$("#c"+i).css({
"right" : "" + (x - (e.pageX - px)) + "px",
"bottom" : "" + (y - (e.pageY - py)) + "px"
})
}
}).mouseup(function() {
isMove = false
})
})
// i++
// }
})
</script>
<style type="text/css">
.cell {
position: relative;
right: -100px;
bottom: -100px;
background-color: royalblue;
width: 40px;
height: 40px;
border-radius: 5px;
-webkit-box-shadow: 1px 1px 5px #666666;
-webkit-user-select: none;
margin: 10px;
display: inline-block;
}
.panel {
-webkit-user-select: none;
}
</style>
<body>
<div class="panel">
<div class="cell" id="c1"></div>
<div class="cell" id="c2"></div>
<div class="cell" id="c3"></div>
<div class="cell" id="c4"></div>
<div class="cell" id="c5"></div>
</div>
</body>
</html>
Now it works well. However when i add 'while' statement into it, only the last button can be dragged
<!DOCTYPE html>
<html>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var i = 1
while (i < 6) {
$("#c"+i).mousedown(function(e) {
var isMove = true
var px = e.pageX
var py = e.pageY
x = parseInt($("#c"+i).css("right"))
y = parseInt($("#c"+i).css("bottom"))
$(document).mousemove(function(e) {
if (isMove) {
$("#c"+i).css({
"right" : "" + (x - (e.pageX - px)) + "px",
"bottom" : "" + (y - (e.pageY - py)) + "px"
})
}
}).mouseup(function() {
isMove = false
})
})
i++
}
})
</script>
<style type="text/css">
.cell {
position: relative;
right: -100px;
bottom: -100px;
background-color: royalblue;
width: 40px;
height: 40px;
border-radius: 5px;
-webkit-box-shadow: 1px 1px 5px #666666;
-webkit-user-select: none;
margin: 10px;
display: inline-block;
}
.panel {
-webkit-user-select: none;
}
</style>
<body>
<div class="panel">
<div class="cell" id="c1"></div>
<div class="cell" id="c2"></div>
<div class="cell" id="c3"></div>
<div class="cell" id="c4"></div>
<div class="cell" id="c5"></div>
</div>
</body>
</html>
So why does it happen, and how can I solve this problem?