Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Javascript 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画_Javascript_Jquery_Hover_Jquery Animate_Conditional Statements - Fatal编程技术网

Javascript 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画

Javascript 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画,javascript,jquery,hover,jquery-animate,conditional-statements,Javascript,Jquery,Hover,Jquery Animate,Conditional Statements,我有一个简单的悬停动画;我分离了和函数来定义mouseleave上的contidion。如果这是真的;禁用mouseleave函数,但我无法使此条件生效,javascript忽略我的条件并运行mouseleave函数 jQuery: $('.bigBox').mouseenter(function() { $('.trigger').stop().animate({'left':'-50px'},222); $('.bigBox').stop().animate({'left'

我有一个简单的悬停动画;我分离了和函数来定义mouseleave上的contidion。如果这是真的;禁用mouseleave函数,但我无法使此条件生效,javascript忽略我的条件并运行mouseleave函数

jQuery:

$('.bigBox').mouseenter(function() {
    $('.trigger').stop().animate({'left':'-50px'},222);
    $('.bigBox').stop().animate({'left':'-1px'},222);
});


var holdCondition = $('#hold').hasClass('selected');
//tried to disable mouseleave here but didnt work

if ( !holdCondition ) {//if #hold has not class selected
    $('.bigBox').mouseleave(function() {
        $('.trigger').stop().animate({'left':'-1px'},222);
        $('.bigBox').stop().animate({'left':'-111px'},222);
    });
}


$('.option').click(function(){
    $('.option').removeClass('selected');
    $(this).addClass('selected');
});
html:


何时将“seleced”应用于id为“hold”的元素? 我怀疑这会发生在用户交互上,而不一定是在页面加载上

你写这篇文章的方式:

if ( !holdCondition ) {//if #hold has not class selected
    $('.bigBox').mouseleave(function() {
如果不是holdCondition,mouseleave将在pageload上定义

你要的是检查!mouseleave内部的保持条件:

$('.bigBox').mouseleave(function() {
    if ( !holdCondition ){
        $('.trigger').stop().animate({'left':'-1px'},222);
        $('.bigBox').stop().animate({'left':'-111px'},222);
    }
});

您的
holdCondition
将只运行一次,而您必须每隔
.mouseleave()
检查一次。 试试这个


我已经编辑了你的代码,检查一下,看起来我犯了一个简单的错误,鲍勃。谢谢你指出这一点。
if ( !holdCondition ) {//if #hold has not class selected
    $('.bigBox').mouseleave(function() {
$('.bigBox').mouseleave(function() {
    if ( !holdCondition ){
        $('.trigger').stop().animate({'left':'-1px'},222);
        $('.bigBox').stop().animate({'left':'-111px'},222);
    }
});
   $('.bigBox').mouseleave(function() {
        var holdCondition = $('#hold').hasClass('selected');

        if ( !holdCondition ) {//if #hold has not class selected
          $('.trigger').stop().animate({'left':'-1px'},222);
          $('.bigBox').stop().animate({'left':'-111px'},222);
        }
    });