Javascript 拖放;插入HTML
嗨,我在写一个小计算器做练习。目前还没有逻辑。我仍然希望允许用户在浏览器中拖动计算器 因此,我将计算器元素嵌套在这个-标记中,并实现了一些拖放逻辑(主要来自教程)。但还是不行 有人知道我做错了什么吗Javascript 拖放;插入HTML,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,嗨,我在写一个小计算器做练习。目前还没有逻辑。我仍然希望允许用户在浏览器中拖动计算器 因此,我将计算器元素嵌套在这个-标记中,并实现了一些拖放逻辑(主要来自教程)。但还是不行 有人知道我做错了什么吗 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <met
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>myCalculator</title>
<script type="text/javascript">
var dragObject = null;
var dragX = 0;
var dragY = 0;
var posX = 0;
var posY = 0;
function handleInput(currentInput){
alert(currentInput);
var x = 0;
x = currentInput;
}
function saveOperator(currentOperator){
alert(currentOperator);
}
function dragInit(){
document.onmousemove = drag;
document.onmouseup = dragStop;
}
function dragStop(){
dragObject = null;
}
function dragStart(element){
dragObject = element;
dragX = posX - dragObject.offsetLeft;
dragY = posY - dragObject.offsetTop;
}
function drag(event){
posX = document.all ? window.event.clientX : event.pageX;
posY = document.all ? window.event.clientY : event.pageY;
if(dragObject != nul){
dragObject.style.left = (posX - dragX) + "px";
dragObject.style.top = (posY - dragY) + "px";
}
}
</script>
</head>
<body onload="dragInit">
<div id="calc" onmousedown="dragStart(this)" style="position:absolute;top:10px;left:10px;height:270px;width:200px;background:#006600">
<h1 id="headLine"><b>myCalculator</b></h1>
<input type="text" id="calcField"/>
<table style="position: absolute;" id="calculatorTable">
<tr>
<td><input id="7" type="button" value="7" onclick="handleInput(this.value)"/></td>
<td><input id="8" type="button" value="8" onclick="handleInput(this.value)"/></td>
<td><input id="9" type="button" value="9" onclick="handleInput(this.value)"/></td>
<td><input id="/" type="button" value="/" onclick="saveOperator(this.value)"/></td>
</tr>
<tr>
<td><input id="4" type="button" value="4" onclick="handleInput(this.value)"/></td>
<td><input id="5" type="button" value="5" onclick="handleInput(this.value)"/></td>
<td><input id="6" type="button" value="6" onclick="handleInput(this.value)"/></td>
<td><input id="*" type="button" value="*" onclick="saveOperator(this.value)"/></td>
</tr>
<tr>
<td><input id="1" type="button" value="4" onclick="handleInput(this.value)"/></td>
<td><input id="2" type="button" value="5" onclick="handleInput(this.value)"/></td>
<td><input id="3" type="button" value="6" onclick="handleInput(this.value)"/></td>
<td><input id="-" type="button" value="-" onclick="saveOperator(this.value)"/></td>
</tr>
<tr>
<td><input id="0" type="button" value="0" onclick="handleInput(this.value)"/></td>
<td><input id="," type="button" value="," onclick="handleInput(this.value)"/></td>
<td><input id="+" type="button" value="+" onclick="saveOperator(this.value)"/></td>
<td><input id="=" type="button" value="=" onclick="saveOperator(this.value)"/></td>
</tr>
</table>
</div>
</body>
</html>
我的计算器
var dragObject=null;
var-dragX=0;
var-dragY=0;
var-posX=0;
var-posY=0;
功能手柄输入(电流输入){
警报(电流输入);
var x=0;
x=电流输入;
}
函数saveOperator(currentOperator){
警报(当前操作员);
}
函数dragInit(){
document.onmousemove=拖动;
document.onmouseup=dragStop;
}
函数dragStop(){
dragObject=null;
}
函数dragStart(元素){
dragObject=元素;
dragX=posX-dragObject.offsetLeft;
dragY=posY-dragObject.offsetTop;
}
函数拖动(事件){
posX=document.all?window.event.clientX:event.pageX;
posY=document.all?window.event.clientY:event.pageY;
如果(dragObject!=nul){
dragObject.style.left=(posX-dragX)+“px”;
dragObject.style.top=(posY-dragY)+“px”;
}
}
我的计算器
第56行出现语法错误。使用null
代替nul
。您可能希望使用JS语法检查器,例如
然后,在第66行,您可能想调用
dragInit
函数,因此您应该使用括号(而不是大括号,感谢Lightness Races in Orbital;)编写
。第56行出现语法错误。使用null
代替nul
。您可能希望使用JS语法检查器,例如
然后,在第66行,你可能想调用
dragInit
函数,所以你应该用括号写
(不要用大括号,感谢轻量级比赛;)这很有帮助,非常感谢。我会给你的awnser评分,但我不能说没问题:)别忘了通过JSLint检查你的JS代码,这真的很有帮助。然后,请毫不犹豫地浏览Stackoverflow以查找此类问题。最后阅读,你会学到很多很棒的技巧!这些是括号,不是大括号。这很有帮助,非常感谢。我会给你的awnser评分,但我不能说没问题:)别忘了通过JSLint检查你的JS代码,这真的很有帮助。然后,请毫不犹豫地浏览Stackoverflow以查找此类问题。最后阅读,你会学到很多很棒的技巧!这些是括号,不是大括号。