Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何防止在动画完成之前单击html元素?_Jquery_Jquery Ui_Jquery Plugins_Jquery Animate - Fatal编程技术网

Jquery 如何防止在动画完成之前单击html元素?

Jquery 如何防止在动画完成之前单击html元素?,jquery,jquery-ui,jquery-plugins,jquery-animate,Jquery,Jquery Ui,Jquery Plugins,Jquery Animate,我正在使用div上的click事件绑定来展开/折叠div。 展开/折叠是使用 $('#myid')。设置动画(myfunctiontocollapse/expand)。 例如,现在div的高度为零,我点击div展开它,在展开完成之前再次点击它,调用折叠代码,div变形。 在进行折叠/扩展时,如何防止第二次单击事件?解除单击的绑定,然后作为完成参数的一部分重新绑定处理程序 不清楚动画功能是什么,但是show()可能是一个更好的选择: var myClickHandler = function(el

我正在使用div上的click事件绑定来展开/折叠div。 展开/折叠是使用
$('#myid')。设置动画(myfunctiontocollapse/expand)
。 例如,现在div的高度为零,我点击div展开它,在展开完成之前再次点击它,调用折叠代码,div变形。
在进行折叠/扩展时,如何防止第二次单击事件?

解除单击的绑定,然后作为完成参数的一部分重新绑定处理程序

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

var myClickHandler = function(el){
    $(el).unbind("click");
    $('#myid').show('slow', function() { $("#mytrigger").click(myClickHandler) }
}
$('#mytrigger').click(myClickHandler);

如果您的函数确实是自定义的,那么您也可以对
animate()
执行相同的操作。

解除单击的绑定,然后作为完成参数的一部分重新绑定处理程序

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

var myClickHandler = function(el){
    $(el).unbind("click");
    $('#myid').show('slow', function() { $("#mytrigger").click(myClickHandler) }
}
$('#mytrigger').click(myClickHandler);

如果您的函数确实是自定义的,您也可以使用
animate()
执行相同的操作。

您可以检查它是否仍在单击函数中设置动画,然后返回false以防止默认的单击操作和传播

if($('#myid').is(':animated')){
    return false;
}

您可以检查它是否仍在单击功能中设置动画,如果仍然设置动画,则返回false以防止默认的单击操作和传播

if($('#myid').is(':animated')){
    return false;
}

可以使用jQuery
.stop()
方法停止当前正在运行的动画

下面是一个示例代码

$('#hoverme-stop-2').hover(function() {
  $(this).find('img').stop(true, true).fadeOut();
}, function() {
  $(this).find('img').stop(true, true).fadeIn();
});

可以使用jQuery
.stop()
方法停止当前正在运行的动画

下面是一个示例代码

$('#hoverme-stop-2').hover(function() {
  $(this).find('img').stop(true, true).fadeOut();
}, function() {
  $(this).find('img').stop(true, true).fadeIn();
});

您可以使用
.stop(true)
解除单击事件的绑定。您可以使用
.stop(true)
解除单击事件的绑定。我不尝试停止动画。如果第二次触发,我尝试停止单击事件。我不尝试停止动画。如果第二次触发,我尝试停止单击事件。