Jquery滚动函数循环

时间:2015-08-02 13:46:20

标签: javascript jquery

我有一个简单的jquery插件,用很少的选项来显示元素。主要选项显示基于时间延迟或滚动功能的div。延时工作正常,但滚动保持循环 - 打开/关闭复选框状态。

我到目前为止:JSFiddle

(function($) {

$.fn.testing = function( options ) {

    // Settings
    var settings = $.extend({
        delay           : null,
        delayTime       : null,
        scrolling       : null,
        scrollDist      : null
    }, options);

    return this.each( function() {
        var self = this;

        // Timeout
        setTimeout(function (){
           $(self).prop('checked', settings.delay);
        }, settings.delayTime);

        // Scroll
       if ($(window).scrollTop() > settings.scrollDist) {
          $(this).prop('checked', settings.scrolling);
       };

    });

}

}(jQuery));

// Plugin invoke
$(window).on("load resize scroll",function(){
    $('#testInput').testing({
        delay             : false,
        delayTime         : null,
        scrolling         : true,
        scrollDist        : 20,
    });
});

在编译期间,我可能错过了一些东西,但看不出来。 如果在滚动事件触发器时函数停止并且元素在没有此循环的情况下显示,那将会很棒。

1 个答案:

答案 0 :(得分:0)

似乎在滚动时重新加载并调整大小是重新运行该函数并导致错误。在没有插件调用窗口函数包装器的情况下尝试它:

// Plugin invoke
//$(window).on("load resize scroll",function(){
    $('#testInput').testing({
        delay             : false,
        delayTime         : null,
        scrolling         : true,
        scrollDist        : 20,
    });
//});