【发布时间】:2012-09-11 05:56:53
【问题描述】:
我想在我的页面中制作一个微调控件,我试过这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple spinner</title>
<script type="text/javascript">
function RotateSpinner(spinnerId, up) {
var ele=document.getElementById(spinnerId);
ele.value=parseInt(ele.value)+up;
var t=setTimeout(function(){
if(window.rotate_start)
RotateSpinner(spinnerId,up);
else
clearTimeout(t);
},500);
}
</script>
<style>
*
{
padding: 0;
margin: 0;
}
.spinner
{
list-style: none;
display: inline-block;
line-height: 0;
vertical-align: middle;
}
.spinner input
{
font-size: .45em;
border-width: .5px;
height: 1.5em;
width: 2em;
}
</style>
</head>
<body>
<input id="spinner" type="text" value="0" />
<ul class="spinner">
<li>
<input type="button" value="▲" onmousedown="window.rotate_start=true;RotateSpinner('spinner', 1)" onmouseup="window.rotate_start=false;"/>
</li>
<li>
<input type="button" value="▼" onmousedown="window.rotate_start=true;RotateSpinner('spinner', -1)" onmouseup="window.rotate_start=false;"/>
</li>
</ul>
</body>
</html>
但是,它并没有按我的意愿工作,当我单击“向上”按钮时,我希望该值只添加一次,但有时它会多次添加该值。
任何人都可以检查并修复它吗?
这里是live example
【问题讨论】:
-
投反对票的人能告诉我为什么吗?这个问题是不是太简单了??还是我没有说清楚??还是我发错地方了???
-
是的,我是通过google找到的,但我发现它确实允许连续递增。所以我尝试做一些修复,我使用了 settimeout,但它并没有像我预期的那样工作。
-
如果您点击按钮,然后在外面释放点击,
onmousedown将触发,但onmouseup不会触发。您可以在两个按钮上尝试多次,以查看值是否疯狂。
标签: javascript spinner