Javascript 时间线问题

Javascript Timeline Issue

正在创建一个将从左向右滚动的时间轴。运行控制台中的此 js 及其返回以下错误

未捕获的引用错误:select

$('a.next').click(function () { selector.children('.dates-bar').children('a.next').click(function(){
                var actual_scroll = scroll_count;
                var c = selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible()').length
                if(scrolled + scroll_count >= c)
                    actual_scroll = (c - scrolled)-1

                if(parseInt(selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible():eq(0)').css('width'))*actual_scroll > selector.children('.dates-bar').width())
                    while(parseInt(selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible():eq(0)').css('width'))*actual_scroll > selector.children('.dates-bar').width() && actual_scroll > 1)
                        actual_scroll -= 1;

                var a = (-1)*actual_scroll*parseInt(selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible():eq(0)').css('width'));
                selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible():eq(0)').animate({marginLeft: '+=' + String(a)+ 'px'}, scroll_time)
                scrolled += actual_scroll;

                current_month = new Date(selector.children('.dates-bar').children('a:not(.prev, .next, .noevent):visible():eq(' + String(scrolled) + ')').attr('data-date')).getMonth()

                selector.children('.month-year-bar').children('.month').children('span').text(month[current_month])
            }) });

如有任何帮助,我们将不胜感激。谢谢。

您的自定义 jQuery 函数 $.fn.jflatTimeline= 中有一个错误,您忘记调用带有 jQuery 对象的 IIFE(立即调用的函数表达式)。

Ben Alman

关于 IIFE 的更多信息

我已将您的代码更新如下

(function ($) {
   $.fn.jflatTimeline = function (options) {
     ...
   }
})(jQuery); //calling the IIFE with jQuery object 

这是 JSFiddle 在控制台中没有任何错误。

希望您现在可以继续编码了。