flexslider()
関数が完了した後にのみコードを実行します。問題は、flexslider()
が約束を返すことができないということです。実行不可能な非同期関数が完了した後にのみコードを実行します。
だから私は取り除きたい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);
を使用することについてどのように - 約束ということでしょうか? –