2012-05-25 2 views
0

Я новичок в Javascript, и я пытаюсь сделать простое «слайд-шоу» с изображениями. Вот мой код, если он не работает, он загружает html-код как обычно, игнорируя функциональность «hide»: что делать?Простая функция слайд-шоу Javascript не работает

<script type="text/javascript"> 
     $(function() { 
      var tot = $(".slide").length, 
      current = 1 

      $(".slide").not(":first").hide() 

      $("#next").click(function() { 
      if (current+1 > tot) return false 

      $(".slide:visible").hide().next().show() 
      current++ 
      }) 

      $("#prev").click(function() { 
      if (current-1 < 1) return false 

      $(".slide:visible").hide().prev().show() 
       current-- 
      }) 
     })​ 
    </script> 

    <div id="slide_container"> 
      <div class="slide"> 
       <p>Step 1 explained</p> 
       <img src="images/android.png" border="none"/> 
      </div> 
      <div class="slide"> 
       <p>Step 2 Explained</p> 
       <img src="images/apple.png" border="none"/> 
      </div> 
      <div class="slide"> 
       <p>Step 3 explained</p> 
       <img src="images/windows.png" border="none"/> 
      </div> 
      <div> 
       <button id="prev">Prev</button> 
       <button id="next">Next</button> 
      </div> 
    </div> 

Спасибо!

+0

Вы пропустили ';' -s из сценария –

+0

Спасибо, но все еще не можете заставить его работать, с запятой (;) повсюду после каждого перерыва, но он не работает ... – DextrousDave

ответ

1

Я переформатировал ваш код и добавил несколько полуколоней ; для ясности, и я также изменил индексирование текущего и общего числа, и все, похоже, работает нормально. Я создал jsFiddle, используя приведенный ниже JavaScript. , и все, кажется, работают нормально. Дайте это a go

$(function() 
{ 
    var total = $(".slide").length; 
    var current = 0 

    $(".slide").not(":first").hide() 

    $("#next").click(function() 
    { 
     if (current + 1 >= total) 
     { 
      return false; 
     } 

     $(".slide:visible").hide().next().show(); 
     current++ 
    }) 

    $("#prev").click(function() 
    { 
     if (current <= 0) 
     { 
      return false; 
     } 

     $(".slide:visible").hide().prev().show(); 
     current--; 
    }); 
})​ 
+0

Спасибо за ваш ответ. Я использовал его как есть, до сих пор не работает ... У меня есть JS включен ... – DextrousDave

+0

Исходный код, который я опубликовал, также работает в JSFiddle, со всеми его недостатками ... Как это? – DextrousDave

+0

У меня создалось впечатление, что на вашей странице есть ошибка, но это не причина. :) Попробуйте открыть свою страницу в FireFox и просмотреть консоль в Firebug, должен предоставить вам журнал ошибок. – Richard

1

Надеюсь, у вас есть ссылка JQuery, добавленная перед блоком сценария, который вы указали здесь. Просто мысль.

+0

Да, я знаю. Я использую это - DextrousDave

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