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