Javascript &美元不是一个函数;错误。怎么了?

Javascript &美元不是一个函数;错误。怎么了?,javascript,jquery,function,Javascript,Jquery,Function,我正在尝试向我的站点添加一个图像旋转器,但由于某些原因,firebug告诉我启动旋转器需要调用的函数没有定义。我的jQuery文件正在加载,图像旋转器脚本正在加载,所以我不确定是什么问题。该网站已关闭,但我将继续发布脚本: ;(function($) { $.fn.featureList = function(options) { var tabs = $(this); var output = $(options.output);

我正在尝试向我的站点添加一个图像旋转器,但由于某些原因,firebug告诉我启动旋转器需要调用的函数没有定义。我的jQuery文件正在加载,图像旋转器脚本正在加载,所以我不确定是什么问题。该网站已关闭,但我将继续发布脚本:

;(function($) {
    $.fn.featureList = function(options) {
        var tabs    = $(this);
        var output  = $(options.output);

        new jQuery.featureList(tabs, output, options);

        return this;    
    };

    $.featureList = function(tabs, output, options) {
        function slide(nr) {
            if (typeof nr == "undefined") {
                nr = visible_item + 1;
                nr = nr >= total_items ? 0 : nr;
            }

            tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

            output.stop(true, true).filter(":visible").fadeOut();
            output.filter(":eq(" + nr + ")").fadeIn(function() {
                visible_item = nr;  
            });
        }

        var options         = options || {}; 
        var total_items     = tabs.length;
        var visible_item    = options.start_item || 0;

        options.pause_on_hover      = options.pause_on_hover        || true;
        options.transition_interval = options.transition_interval   || 5000;

        output.hide().eq( visible_item ).show();
        tabs.eq( visible_item ).addClass('current');

        tabs.click(function() {
            if ($(this).hasClass('current')) {
                return false;   
            }

            slide( tabs.index( this) );
        });

        if (options.transition_interval > 0) {
            var timer = setInterval(function () {
                slide();
            }, options.transition_interval);

            if (options.pause_on_hover) {
                tabs.mouseenter(function() {
                    clearInterval( timer );

                }).mouseleave(function() {
                    clearInterval( timer );
                    timer = setInterval(function () {
                        slide();
                    }, options.transition_interval);
                });
            }
        }
    };
});
下面是启动图像旋转器的脚本:

<script language="javascript">
    $(document).ready(function() {

        $.featureList(
            $("#tabs li a"),
            $("#output li"), {
                start_item  :   1
            }
        );
    });
</script>

$(文档).ready(函数(){
$.featureList(
元("a),,
美元(“#产出li”){
启动项目:1
}
);
});

您的代码创建了一个匿名函数,但没有调用它


您需要通过在末尾添加
(jQuery)
来调用该函数。

您的代码创建了一个匿名函数,但不调用它


您需要通过在末尾添加
(jQuery)
来调用该函数。

您无法执行
$。功能列表(

请参阅Chrome错误:


插件需要应用于对象

您无法执行
$。功能列表(

请参阅Chrome错误:


插件需要应用于对象

您刚刚错过了创建插件的正确语法。您真正想要的是:

(function($) {
   $.fn.featureList = function() { // etc; }
   $.featureList = function() { // yet more etc; }
})(jQuery);

您只是稍微错过了创建插件的正确语法。您真正想要的是:

(function($) {
   $.fn.featureList = function() { // etc; }
   $.featureList = function() { // yet more etc; }
})(jQuery);

;(函数($){
。这是一个输入错误吗?输入错误与否无关紧要-它只是创建了一个空语句。
;(函数($){
。这是一个输入错误吗?输入错误与否,无关紧要-它只是创建了一个空语句。呃?你这是什么意思?插件需要应用到一个对象实际上,你可以。阅读他的插件。不。他在代码中定义了$.featureList。问题是,定义函数的代码从未实际执行过(他定义了闭包,但从未执行过)。呃?你这是什么意思?插件需要应用于对象实际上,你可以。阅读他的插件。否。他在代码中定义了$.featureList。问题是,定义函数的代码从未实际执行过(他定义了闭包,但从未执行过)。这就是答案。-查找此类问题(语义正确的jQuery,但使用挂起语句而不是赋值)的一个很好的工具是JSLint:-它解析并分析代码中的逻辑错误和糟糕的编程实践。但是当我添加(jQuery)时在插件的结尾,我看到另一个错误,说jQuery未定义}(jQuery);@user:你需要在包含jQuery之后运行脚本,而不是之前。这就是答案。-这是查找类似问题的一个很好的工具(语义正确的jQuery,但使用挂起语句而不是赋值)is JSLint:-它解析并分析代码中的逻辑错误和糟糕的编程实践。但是当我在插件末尾添加(jQuery)时,我得到另一个错误,即jQuery未定义}(jQuery);@user:您需要在包含jQuery之后而不是之前运行脚本。正确的示例,但解释一下为什么会有帮助。如果最后没有(jQuery),他只定义了一个闭包/函数,但从未实际执行内部代码。正确的示例,但解释一下为什么会有帮助。没有(jQuery)最后,他只定义了一个闭包/函数,但从未实际执行其中的代码。