是在多线程上工作的jquery动画函数吗?
在我的代码中...假设我单击顶部按钮并调用函数正常工作....
现在点击任何剩余的一次....第二个功能也可以工作,但也有第一个电话。
那么,我怎么能一次调用一个函数呢?
这是杀死它的方式吗?
<table width="1200px" height="600px" align="center">
<tr>
<td>
</td>
<td style="text-align: center">
<button id="btntop">
top</button>
</td>
<td>
</td>
</tr>
<tr>
<td style="text-align: right">
<button id="btnleft">
left</button>
</td>
<td style="text-align: center">
<img id="book" src="Image/images.jpg" alt="" width="250" height="123" style="position: relative;
left: 10px;" />
</td>
<td>
<button id="btnright">
right</button>
</td>
</tr>
<tr>
<td>
</td>
<td style="text-align: center">
<button id="btnbottom">
bottom</button>
</td>
<td>
</td>
</tr>
</table>
<script type="text/javascript">
function anim(direction) {
if (direction == "top") {
$('#book').animate({
top: '-=10'
}, 200, function () {
anim("top");
});
}
if (direction == "left") {
$('#book').animate({
left: '-=10'
}, 200, function () {
anim("left");
});
}
if (direction == "right") {
$('#book').animate({
left: '+=10'
}, 200, function () {
anim("right");
});
}
if (direction == "bottom") {
$('#book').animate({
top: '+=10'
}, 200, function () {
anim("bottom");
});
}
}
$('#btntop').hover(function () {
anim("top");
});
$('#btnleft').hover(function () {
anim("left");
});
$('#btnright').hover(function () {
anim("right");
});
$('#btnbottom').hover(function () {
anim("bottom");
});
</script>
答案 0 :(得分:1)
您在anim()
上呼叫hover()
这个功能并不是一个好主意。将其更改为click()
。
至于第二部分,在每个4个按钮点击处理程序中调用$('#book').stop(true);
之前添加anim()
:
$('#btntop').click(function () {
$('#book').stop(true);
anim("top");
});
$('#btnleft').click(function () {
$('#book').stop(true);
anim("left");
});
$('#btnright').click(function () {
$('#book').stop(true);
anim("right");
});
$('#btnbottom').click(function () {
$('#book').stop(true);
anim("bottom");
});
它将停止所有当前正在运行的动画并启动新动画。