function1 = function(){
something.on(\'transitionend\', function(){
// now function2 should run
});
}
function2 = function(){
alert(\'ok\');
}
function
Note, transitionend
event may fire multiple times if all
is set within css
transition
property value
Try (this pattern)
i.e.g.,
html
css
button {
width: 100px;
-webkit-transition: width 1s;
}
.transition {
width: 150px
}
js
$(function() {
// `$.Callbacks("once")` to fire `alert` once ,
// even if `all` set within `css` `transition`
// property value
var callbacks = $.Callbacks();
function2 = function(j) {
alert(j);
};
callbacks.add(function2);
$(window).on("transitionComplete", function(e, i) {
// function2(i);
callbacks.fireWith($(this), [i]);
});
// `webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd`
function1 = function() {
$("button").on('transitionend', function (e) {
$(window).trigger("transitionComplete", ["ok"]);
});
};
function1();
$("button").on("click", function(e) {
$(this).toggleClass("transition");
});
});
jsfiddle http://jsfiddle.net/guest271314/u7B9K/