2014-10-19 69 views
1

遇到一些事件触发怪异的事件。如果你打开放和对的jsfiddle关闭几次下面你会看到发生了什么:Slideout Bug触发两次

http://jsfiddle.net/rzs7x4ab/5/

$('.btn-open-wrapper').on('click', function (event) { 
    event.stopPropagation(); 
    $(".blackboard-wrapper").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (event) { 
     $('.btn-open-wrapper').addClass('is-hidden'); 
     $('.btn-close-wrapper').addClass('is-visible'); 
    }); 
    $('.blackboard-wrapper').addClass('is-open'); 
}); 


$('.btn-close-wrapper').on('click', function (event) { 
    $('.btn-open-wrapper').removeClass('is-hidden'); 
    $('.btn-close-wrapper').removeClass('is-visible'); 

    event.stopPropagation(); 
    $(".btn-close-wrapper").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (event) { 
     $('.blackboard-wrapper').removeClass('is-open'); 
    }); 
}); 
+0

...发生了什么?预期的结果是什么? – 2014-10-19 20:47:30

+0

当您第二次打开它时,您会注意到黑色方块不会像第一次那样保持打开状态。我希望你第二次打开功能就像第一次一样。 – MarioD 2014-10-19 20:50:48

+1

明白了,不得不尝试在不同的浏览器...我可以注意到,问题只发生在** Chrome **,而FF做得很好(我上面评论的原因) – 2014-10-19 20:53:41

回答

1

(Firefox没有它非常好)
原因是驼峰transitionEnd(你没用过)

Fixed (test in Chrome)

+0

罗科,惊人的捕捉 - 感谢您的领导:) – MarioD 2014-10-19 20:58:16

+0

@MarioD欢迎:) – 2014-10-19 20:58:57

0

你混点击关闭时编辑表达式。 Here's a working JSFiddle与您的代码进行比较。

例如:

$(".btn-close-wrapper").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (event) { 
    $('.blackboard-wrapper').removeClass('is-open'); 
}); 

应该是:

$("#blackboard-wrapper").one("transitionEnd webkitTransitionEnd oTransitionEnd MSTransitionEnd", function (event) { 
    $('#btn-open-wrapper').removeClass('is-hidden'); 
    $('#btn-close-wrapper').removeClass('is-visible'); 
}); 

编辑:哦,等等,这是驼峰问题。我的代码有不同的行为。