Je ne sais pas quel est le problème avec mon code. Je ne peux pas passer une fonction dans mon javascript, [je ne veux pas le mettre en ligne]Comment ajouter une fonction javascript en html?
Mon problème est mon bouton prev et le bouton suivant ne fonctionne pas, j'ai aussi essayé de mettre false sur prev et à côté de arrêtez d'actualiser la page, mais elle est toujours rafraîchissante lorsque vous cliquez sur.
C'est mon code [s'il vous plaît voir aussi mes commentaires] et mon codepen:
$(document).ready(function slider() {
$('#img1').show('fade', 500);
$('#img1').delay(5000).hide("slide", { direction: 'left' }, 500);
});
var count = 2;
setInterval(function loop() {
var all = document.getElementsByTagName('li').length; // <-- i got the li elements so i did the same to prev and next
$('#img' + count).show('slide', { direction: 'right' }, 500);
$('#img' + count).delay(5500).hide('slide', { direction: 'left' }, 500);
if (count === all) {
count = 1;
} else {
count += 1;
}
}, 6500);
var sliderInt = 1;
var sliderNext = 2;
document.getElementsByClassName('prev').onclick = function prev() { // <-- not working
console.log('clicked prev');
var newSlide = sliderInt - 1;
showSlide(newSlide);
return false;
}
document.getElementsByClassName('next').onclick = function next() { // <-- not working
console.log('clicked next');
var newSlide = sliderInt + 1;
showSlide(newSlide);
return false;
}
function stopLoop() {
window.clearInterval(loop());
}
function showSlide(id) { // <-- this function doesn't work from prev and next
stopLoop(); // <-- I want to stop the loop() function when prev and next is clicked
if (id > count) {
id = 1;
} else if (id < 1) {
id = count;
}
$('li').hide('slide', { direction: 'left' }, 500);
$('#img' + id).show('slide', { direction: 'right' }, 500);
sliderInt = id;
sliderNext = id + 1;
window.slider(); // <-- I want to call the function slider here
}
une démonstration de solution sera très appréciée :)
d'une part, 'document.getElementsByClassName()' retourne un tableau pas un objet DOM, vous ne pouvez donc pas directement faire un '.onlick' sur la réponse. En outre, une fois que vous avez 'onclick' vous n'avez pas besoin de nommer cette fonction, cela peut prendre une fonction anonyme par exemple' .onclick = function() {// faire des choses} ' – Stu