仅在非 thenable 异步函数完成后执行代码
Execute code only after a non-thenable, asynchronous function completes
我只想在 flexslider()
函数完成后才执行我的代码。问题是 flexslider()
没有 return 承诺或其他承诺。
所以我应用了这个令人讨厌的解决方法 setTimeout
我想摆脱它。如何重构它并仅在 flexslider
初始化后执行我的代码?
(function($) {
$('.flexslider').flexslider({
animation: "slide",
controlNav: false
});
setTimeout(function() {
var $navBar = $('.primary-nav');
var navbarPosition = $navBar.offset().top;
$(window).scroll(function() {
var scrollPosition = $(this).scrollTop();
if (scrollPosition >= navbarPosition) {
$navBar.addClass('navbar-fixed');
} else {
$navBar.removeClass('navbar-fixed');
}
});
}, 1000);
})(jQuery);
如何使用start:
$('.flexslider').flexslider({
animation: "slide",
controlNav: false,
start: function(){
// do something....
}
});
我只想在 flexslider()
函数完成后才执行我的代码。问题是 flexslider()
没有 return 承诺或其他承诺。
所以我应用了这个令人讨厌的解决方法 setTimeout
我想摆脱它。如何重构它并仅在 flexslider
初始化后执行我的代码?
(function($) {
$('.flexslider').flexslider({
animation: "slide",
controlNav: false
});
setTimeout(function() {
var $navBar = $('.primary-nav');
var navbarPosition = $navBar.offset().top;
$(window).scroll(function() {
var scrollPosition = $(this).scrollTop();
if (scrollPosition >= navbarPosition) {
$navBar.addClass('navbar-fixed');
} else {
$navBar.removeClass('navbar-fixed');
}
});
}, 1000);
})(jQuery);
如何使用start:
$('.flexslider').flexslider({
animation: "slide",
controlNav: false,
start: function(){
// do something....
}
});