我正在尝试添加一个图像旋转器到我的网站,但出于某种原因,firebug告诉我启动旋转器需要调用的函数没有定义。我的jQuery文件加载正常,图像旋转器脚本也在加载,所以我不确定出了什么问题。该站点是heritage.newcoastmedia.com,但我将继续并发布该脚本:
;(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>发布于 2011-06-30 02:54:58
您的代码创建了一个匿名函数,但没有调用它。
您需要通过在末尾添加(jQuery)来调用函数。
发布于 2011-06-30 02:56:06
您不能执行$.featureList(
请参阅Chrome错误:

插件需要应用于一个对象
发布于 2011-06-30 02:59:38
您只是稍微错过了创建插件的正确语法。你真正想要的是:
(function($) {
$.fn.featureList = function() { // etc; }
$.featureList = function() { // yet more etc; }
})(jQuery);https://stackoverflow.com/questions/6525717
复制相似问题