Reputation: 165
I'm facing a problem for using same JavaScript code twice. Both slider conflicting and doesn't work properly. I want to know why this doesn't work. When I use only one slider it work properly. Here is the JavaScript code:
sliderInt = 1;
sliderNext = 2;
$(document).ready(function() {
$('#slider > img#1').fadeIn(150);
startSlider();
})
function startSlider() {
var count = $('#slider > img').size();
var loop = setInterval(function() {
if (sliderNext > count) {
sliderInt = 1;
sliderNext = 1;
}
$('#slider > img').fadeOut(150);
$('#slider > img#' + sliderNext).fadeIn(150);
sliderInt = sliderNext;
sliderNext = sliderNext + 1;
}, 3000);
}
function prev() {
newSlide = sliderInt - 1;
showSlide(newSlide);
}
function next() {
newSlide = sliderInt + 1;
showSlide(newSlide);
}
function stopLoop() {
window.clearInterval(loop);
}
function showSlide(id) {
stopLoop();
if (id > count) {
id = 1;
} else if (id < 1) {
id = count;
}
$('#slider > img').fadeOut(150);
$('#slider > img#' + id).fadeIn(150);
sliderInt = id;
sliderNext = id + 1;
startSlider();
}
$('#slider > img').hover(
function() {
stopLoop();
},
function() {
startSlider();
}
// In the End of the line don't put comma ','
);
sliderInt = 1;
sliderNext = 2;
$(document).ready(function() {
$('#pslider > img#1').fadeIn(150);
startSlider();
})
function startSlider() {
var count = $('#pslider > img').size();
var loop = setInterval(function() {
if (sliderNext > count) {
sliderInt = 1;
sliderNext = 1;
}
$('#pslider > img').fadeOut(150);
$('#pslider > img#' + sliderNext).fadeIn(150);
sliderInt = sliderNext;
sliderNext = sliderNext + 1;
}, 3000);
}
function fprev() {
newSlide = sliderInt - 1;
showSlide(newSlide);
}
function fnext() {
newSlide = sliderInt + 1;
showSlide(newSlide);
}
function stopLoop() {
window.clearInterval(loop);
}
function showSlide(id) {
stopLoop();
if (id > count) {
id = 1;
} else if (id < 1) {
id = count;
}
$('#pslider > img').fadeOut(150);
$('#pslider > img#' + id).fadeIn(150);
sliderInt = id;
sliderNext = id + 1;
startSlider();
}
$('#pslider > img').hover(
function() {
stopLoop();
},
function() {
startSlider();
}
//In the End of the line don 't put comma ', '
);
<div class="primary_slider">
<div id="slider">
<img id="1" src="images/slider_images/image1.jpg" alt="">
<img id="2" src="images/slider_images/image2.jpg" alt="">
<img id="3" src="images/slider_images/image3.jpg" alt="">
</div>
<a class="prev" href="#" onclick="prev(); return false;"></a>
<a class="next" href="#" onclick="next(); return false;"></a>
</div>
<div class="footer_slider">
<div id="pslider">
<img id="1" src="images/pslider/para_img1.jpg">
<img id="2" src="images/pslider/para_img.png">
<img id="3" src="images/pslider/para_img2.jpg">
</div>
<a class="fprev" href="#" onclick="fprev(); return false">
<</a>
<a class="fnext" href="#" onclick="fnext(); return false">></a>
</div>
Upvotes: 1
Views: 2059
Reputation: 51
your function StartSlider is based on the dom element with id "#slider", you should pass the id of your slider as an argument to your function
function startSlider(id) {
var count = $('#" + id + "> img').size(),
loop = setInterval(function() {
if (sliderNext > count) {
sliderInt = 1;
sliderNext = 1;
}
$('#" + id + "> img').fadeOut(150);
$('#" + id + "> img#' + sliderNext).fadeIn(150);
sliderInt = sliderNext;
sliderNext = sliderNext + 1;
}, 3000);
}
And call it as
startSlider('pslider');
for example
Upvotes: 0
Reputation: 391
You have troubles with id
of your sliders. http://www.w3schools.com/tags/att_global_id.asp
You can try to use classes
<div class="primary_slider">
<div class="slider">
<img id="1" src="images/slider_images/image1.jpg" alt="">
<img id="2" src="images/slider_images/image2.jpg" alt="">
<img id="3" src="images/slider_images/image3.jpg" alt="">
</div>
<a class="prev" href="#" onclick="prev(); return false;"><</a>
<a class="next" href="#" onclick="next(); return false;">></a>
</div>
<div class="footer_slider">
<div class="slider">
<img id="4" src="images/pslider/para_img1.jpg">
<img id="5" src="images/pslider/para_img.png">
<img id="6" src="images/pslider/para_img2.jpg">
</div>
<a class="prev" href="#" onclick="prev(); return false">
<</a>
<a class="next" href="#" onclick="next(); return false">></a>
</div>
sliderInt = 1;
sliderNext = 2;
$(document).ready(function() {
$('#slider > img#1').fadeIn(150);
startSlider();
})
function startSlider() {
var count = $('.slider > img').size();
var loop = setInterval(function() {
if (sliderNext > count) {
sliderInt = 1;
sliderNext = 1;
}
$('.slider > img').fadeOut(150);
$('.slider > img#' + sliderNext).fadeIn(150);
sliderInt = sliderNext;
sliderNext = sliderNext + 1;
}, 3000);
}
function prev() {
newSlide = sliderInt - 1;
showSlide(newSlide);
}
function next() {
newSlide = sliderInt + 1;
showSlide(newSlide);
}
Upvotes: 1