繁体   English   中英

仅在不可同步的异步函数完成后才执行代码

[英]Execute code only after a non-thenable, asynchronous function completes

我只想在flexslider()函数完成后才执行代码。 问题在于flexslider()不会返回promise或其他thenable。

所以我对setTimeout应用了这个讨厌的解决方法,我想摆脱它。 仅在flexslider初始化后, 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....
  }
});

文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM