2016-04-05 2 views
0

Кнопка добавляется как ребенок к каждому слайду по javascript по важной нераскрывающей причине. Что она делает это она прокручивается на следующий слайд:Эта неприятная кнопка двойного прыжка

<slide id="slide1" class="slide"> 
</slide> 
<slide id="slide2" class="slide"> 
</slide> 
<slide id="slide3" class="slide"> 
</slide> 
<slide id="slide4" class="slide"> 
</slide> 
<slide id="slide5" class="slide"> 
</slide> 
<slide id="slide6" class="slide"> 
</slide> 
<slide id="slide7" class="slide"> 
</slide> 

И это JavaScript:

<script type="text/javascript" language="javascript"> 
for(i=1;i<7;i++){ 
    var li = document.createElement("li"); 
    li.id=i; 
    li.className="dav"; 
    li.innerHTML="^"; 
    li.onclick=scrolls; 
    document.getElementById("slide"+i).appendChild(li); 
} 
function scrolls(){ 
    var a=++this.id; 
    document.getElementById("slide"+a).scrollIntoView(); 
} 
</script> 

И это вопрос кнопки работают хорошо в первый раз, но это в следующем щелкните по нему, перепрыгивая два слайда вперед, например: после нажатия первой кнопки и прокрутки вверх и повторного щелчка по ней снова отображается третий слайд, а не второй. Что происходит, любая помощь будет оценена, а также ПОЖАЛУЙСТА, ПОЛУЧИТЕ ЭТО НАСИЛЬНОЕ ОШИБОК МЕНЯ! ПОСЛЕДНИЕ НЕ ИСПОЛЬЗУЙТЕ JQUERY

ответ

7

Вы увеличили число накладных ++this.id. Попробуйте this.id+1, потому что я уверен, вы не хотите, чтобы изменитьid, просто получите его и добавьте.

Стоит также отметить, что this.id - это не то, что вам нужно играть легкомысленно. Попробуйте что-то вроде this.setAttribute("data-target",'slide'+(i+1));, установив его, затем document.getElementById(this.getAttribute("data-target")).scrollIntoView(); - magic! : D

Смежные вопросы