I'm trying to implement a Slider/Carousel using jQuery. What is wrong with this JavaScript code trying to animate a div?
-
Sorry, I know this is a kind of a lame question. I'm trying to learn Javascript/jQuery/HTML/CSS and I'm having a rough time interfacing all of them together. I set up a jsfiddle with the code in case someone wants to take a poke at it and I'll be posting the relevant code and the errors in just a second. Fiddle: http://jsfiddle.net/k233R/ --- The error I'm getting is TypeError: 'undefined' is not a function (evaluating 'animatingDiv.animate({left:addstring},1000)') I've read the docs and looked at examples and it looks like everything is running correctly. I've had some other devs look at it and they also can't find the issue. Any help would be so awesome. --- Javascript $(document).ready(function(){ function nextSlideOffset(fromSlide) { //TODO: Get the state of all of the relevant forms and calculate the correct next slide //Default: return the current position - the current slide's offset var movingDiv = $('#wizard_slides')[0]; var currentPosition = movingDiv.offsetLeft; var slideWidth = fromSlide.offsetWidth; return -slideWidth; } function animateLeft(x) { var addstring = "+=" + x; var animatingDiv = $( "#wizard_slides" )[0]; animatingDiv.animate({left:addstring},1000); } function animateToPosition(x) { var animatingDiv = $( "#wizard_slides" )[0]; animatingDiv.animate({left:x},1000); } $('.slide-next-button').click(function(e){ var slide = e.target.parentNode; var offset = nextSlideOffset(slide); animateLeft(offset); }); }); --- HTML <div id="wizard_window"> <div id="wizard_slides"> <div class="slide"> SLIDE 1 <button href="javascript:void(0)" class="btn btn-red slide-next-button">Next</button> </div> <div class="slide"> SLIDE 2 </div> </div> </div> --- CSS #wizard_window{ width: 1280px; overflow: hidden; } #wizard_slides { background-color: #FAFAFA; width: 100000px; height: 380px; padding: 0px; } #wizard_slides .slide{ width: 1280px; min-height: 380px; display: inline-block; background: purple; float: left; }
-
Answer:
There are a couple of issues with the JSFiddle. 1. jQuery is not included by default. That looks to be the source of the 'undefined' error, because animate is a jQuery function. You can add jQuery in the 'Frameworks & Extensions' drop-down on the left. 2. Take off the [0] references, as mentioned by in the comments. You're just selecting the one container. 3. The wizzard_slides container needs to have position: absolute; applied in the CSS; otherwise it won't move anywhere. These three fixes will get the JSFiddle working at least, which should be a start.
Dan Smith at Quora Visit the source
Related Q & A:
- how to parse a xml file using jquery and phonegap?Best solution by Stack Overflow
- I'm trying to write a song?Best solution by Yahoo! Answers
- I'm trying to get a meeting with a diplomat to counsel me on a career in international affairs?Best solution by Yahoo! Answers
- How can I find out what tax code I'm on?Best solution by Yahoo! Answers
- I was trying to send a e-mail and it did not send how can i find it again.Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.