用于旋转木马的jQuery插件
所以我是插件开发的新手,我一直在做一个图像旋转木马,我想把它做成一个插件。我以为我已经弄明白了,但似乎没弄对。init函数不会调用。以下是我的插件代码:用于旋转木马的jQuery插件,jquery,jquery-plugins,plugins,carousel,Jquery,Jquery Plugins,Plugins,Carousel,所以我是插件开发的新手,我一直在做一个图像旋转木马,我想把它做成一个插件。我以为我已经弄明白了,但似乎没弄对。init函数不会调用。以下是我的插件代码: // Plugin (function( $ ){ $.fn.customSlider = function(options){ var config = $.extend({ // TODO: add all configuration options needed 'slideCount': null,
// Plugin
(function( $ ){
$.fn.customSlider = function(options){
var config = $.extend({ // TODO: add all configuration options needed
'slideCount': null,
'delayTime': 1000
}, options);
var slideCount = this.find('div.slide').length,
rotate = function(i){ // TODO: make name more descriptive
setInterval(function() {
if (i < slideCount -1) {
i++;
} else {
i=0;
}
slideRotate(i);
}, delayTime);
},
slideRotate = function(i){
var asdf = null;
$('.slider').children().fadeOut(500);
$($('.slider div').get(i)).fadeIn(500); // TODO: externalize $('.slider div').get(i) into variable
},
gotoSlide = function(i){
customSlider.rotate(i-1);
},
init = function(){
console.log('init');
this.find('div:first').show();
customSlider.rotate(0);
},
clickzor = function() { // TODO: make selector more specific
clearInterval(intervalID);
intervalID = null;
var num = parseInt($(this).text(),'') - 1;
slideRotate(num);
gotoSlide(num+1);
};
$('a').click(clickzor);
};
customSlider.init();
// init
})( jQuery );
$(function(){
$('#headSlider').customSlider();
});
//插件
(函数($){
$.fn.customSlider=函数(选项){
var config=$.extend({//TODO:添加所需的所有配置选项
“slideCount”:null,
“延迟时间”:1000
},选项);
var slideCount=this.find('div.slide').length,
旋转=函数(i){//TODO:使名称更具描述性
setInterval(函数(){
如果(i
以下是我的非插件代码:
$(function() {
$('#headSlider div.slide:first').addClass('active').show();
var slideCount = $('.slider div.slide').length;
var delayTime = 6000;
var intervalID;
function slideRotate(i) {
$('.slider').children().fadeOut(500);
$($('.slider div').get(i)).fadeIn(500);
}
function rotate(i)
{
intervalID = setInterval(function() {
if(i < slideCount -1)
{
i++;
}
else
{
i=0;
}
slideRotate(i);
}, delayTime);
}
function gotoSlide(i)
{
rotate(i-1);
}
$('a').click(function()
{
clearInterval(intervalID);
intervalID = null;
var num = parseInt($(this).text(),'') - 1;
slideRotate(num);
gotoSlide(num+1);
});
rotate(0);
});
$(函数(){
$('#头滑块div.slide:first').addClass('active').show();
var slideCount=$('.slider div.slide').length;
var延迟时间=6000;
var有效期;
函数slideRotate(i){
$('.slider').children().fadeOut(500);
$($('.sliderdiv').get(i)).fadeIn(500);
}
函数旋转(一)
{
intervalID=setInterval(函数(){
如果(i
我只是不知道我做错了什么。救命啊 我认为问题在于您应该在扩展定义中调用
init()
$.fn.slider = function(options){
...definitions...
init();
}
您可能不应该将其称为
slider()
,因为jqueryui的拖动滑块被称为相同的滑块。这可能会引起今后的冲突。是的,就是这样。就像我说的,插件开发新手:P