스크립트 오류 질문
본문
이미지 롤링 스크립트를 사용중인데요 다른 사이트들 작업할 때 썼던건데..
현재 사이트는
<script>
$(window).load(function() {
$('.blueberry').blueberry();
});
</script>
이 구문에서 펑션을 찾을 수 없다는 오류가 뜨네요
Uncaught TypeError: $(...).blueberry is not a function
js 파일 도 정상적으로 읽어지는데 롤링 작동도 되지않고.. 해결책이 없을까요?
뭐가 잘못된거죠...
아래는 사용중인 js파일
/*
* jQuery Blueberry Slider v0.4 BETA
* http://marktyrrell.com/labs/blueberry/
*
* Copyright (C) 2011, Mark Tyrrell <*** 개인정보보호를 위한 이메일주소 노출방지 ***>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
(function($){
$.fn.extend({
blueberry: function(options) {
//default values for plugin options
var defaults = {
interval: 4000,
duration: 500,
lineheight: 1,
hoverpause: false,
pager: true,
nav: true, //reserved
keynav: true
}
var options = $.extend(defaults, options);
return this.each(function() {
var o = options;
var obj = $(this);
//store the slide and pager li
var slides = $('.slidess li', obj);
var pager = $('.pager li', obj);
//set initial current and next slide index values
var current = 0;
var next = current+1;
//get height and width of initial slide image and calculate size ratio
var imgHeight = slides.eq(current).find('img').height();
var imgWidth = slides.eq(current).find('img').width();
var imgRatio = imgWidth/imgHeight;
//define vars for setsize function
var sliderWidth = 995;
var cropHeight = 0;
//hide all slides, fade in the first, add active class to first slide
slides.hide().eq(current).fadeIn(o.duration).addClass('active');
//build pager if it doesn't already exist and if enabled
if(pager.length) {
pager.eq(current).addClass('active');
} else if(o.pager){
obj.append('<ul class="pager"></ul>');
slides.each(function(index) {
$('.pager', obj).append('<li><a href="#"><span>'+index+'</span></a></li>')
});
pager = $('.pager li', obj);
pager.eq(current).addClass('active');
}
//rotate to selected slide on pager click
if(pager){
$('a', pager).click(function() {
//stop the timer
clearTimeout(obj.play);
//set the slide index based on pager index
next = $(this).parent().index();
//rotate the slides
rotate();
return false;
});
}
//primary function to change slides
var rotate = function(){
//fade out current slide and remove active class,
//fade in next slide and add active class
slides.eq(current).fadeOut(o.duration).removeClass('active')
.end().eq(next).fadeIn(o.duration).addClass('active').queue(function(){
//add rotateTimer function to end of animation queue
//this prevents animation buildup caused by requestAnimationFrame
//rotateTimer starts a timer for the next rotate
rotateTimer();
$(this).dequeue()
});
//update pager to reflect slide change
if(pager){
pager.eq(current).removeClass('active')
.end().eq(next).addClass('active');
}
//update current and next vars to reflect slide change
//set next as first slide if current is the last
current = next;
next = current >= slides.length-1 ? 0 : current+1;
};
//create a timer to control slide rotation interval
var rotateTimer = function(){
obj.play = setTimeout(function(){
//trigger slide rotate function at end of timer
rotate();
}, o.interval);
};
//start the timer for the first time
rotateTimer();
//pause the slider on hover
//disabled by default due to bug
if(o.hoverpause){
slides.hover(function(){
//stop the timer in mousein
clearTimeout(obj.play);
}, function(){
//start the timer on mouseout
rotateTimer();
});
}
//calculate and set height based on image width/height ratio and specified line height
var setsize = function(){
sliderWidth = $('.slidess', obj).width();
cropHeight = Math.floor(((sliderWidth/imgRatio)/o.lineheight))*o.lineheight;
$('.slidess', obj).css({height: cropHeight});
};
setsize();
//bind setsize function to window resize event
$(window).resize(function(){
setsize();
});
//Add keyboard navigation
if(o.keynav){
$(document).keyup(function(e){
switch (e.which) {
case 39: case 32: //right arrow & space
clearTimeout(obj.play);
rotate();
break;
case 37: // left arrow
clearTimeout(obj.play);
next = current - 1;
rotate();
break;
}
});
}
});
}
});
})(jQuery);
답변을 작성하시기 전에 로그인 해주세요.