首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止在动画完成前点击html元素?

如何防止在动画完成前点击html元素?
EN

Stack Overflow用户
提问于 2012-06-05 21:00:05
回答 3查看 298关注 0票数 1

我正在使用div上的单击事件绑定展开/折叠div。展开/折叠使用$('#myid').animate(myfunctiontocollapse/expand)进行。现在例如div的高度是0,我点击div展开它,在它展开之前我再次点击它,折叠的代码被调用,div变形了。如何在收拢/展开时防止第二次点击事件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-05 21:12:25

您可以在click函数中检查它是否仍然处于动画状态,如果是,则返回false,以防止默认的click操作和传播。

代码语言:javascript
复制
if($('#myid').is(':animated')){
    return false;
}
票数 0
EN

Stack Overflow用户

发布于 2012-06-05 21:05:06

取消绑定单击,然后将处理程序重新绑定为完成参数的一部分

不清楚你的动画功能是什么,但show()可能是你更好的选择:

代码语言:javascript
复制
var myClickHandler = function(el){
    $(el).unbind("click");
    $('#myid').show('slow', function() { $("#mytrigger").click(myClickHandler) }
}
$('#mytrigger').click(myClickHandler);

如果你的函数真的是这样的话,你也可以用animate()做同样的事情。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 21:16:31

您可以使用jQuery .stop() http://api.jquery.com/stop/方法停止当前正在运行的动画。

下面是一个示例代码。

代码语言:javascript
复制
$('#hoverme-stop-2').hover(function() {
  $(this).find('img').stop(true, true).fadeOut();
}, function() {
  $(this).find('img').stop(true, true).fadeIn();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10897779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档