jQuery .each () .hover () слайд-шоу - PullRequest
       16

jQuery .each () .hover () слайд-шоу

1 голос
/ 27 августа 2011

Так что, боюсь, это еще один вопрос из слайд-шоу, который загромождает Stack, но я довольно новичок в jQuery и javascript и хотел бы попробовать написать что-то сам, а не использовать плагины и т. Д. Что мне нужноэто довольно простой материал:

Пара коробок, содержащих изображения с именем класса .slideshow, таким образом:

<div class="box b1">
  <a href="#" title="Project Title" class="slideshow 2000">
    <img src="img/portfolio/1.jpg" alt="Portfolio Item">
    <img src="img/portfolio/2.jpg" alt="Portfolio Item">
  </a>
</div>

<div class="box b2">
  <a href="#" title="Project Title" class="slideshow 2000">
    <img src="img/portfolio/1.jpg" alt="Portfolio Item">
    <img src="img/portfolio/2.jpg" alt="Portfolio Item">
  </a>
</div>

Каждый из них счастливо циклически обвивает изображения, затем я наводю на него ион делает паузу, затем продолжает мышку ... Легко, верно?......

Мой jQuery в настоящее время выглядит следующим образом (я нахожусь в режиме без конфликтов ... отсюда и jQuery):

jQuery(".slideshow").each(function(){
    var $this_s;
    var $that = jQuery(this);

    $that.find("img:gt(0)").hide(); //hide all images after first one

    function slide($this_s){
        $this_s.find(":first-child").hide().next('img').show()
        .end().appendTo($that);
    }
    var int = $that.attr("class");
    int = int.replace("slideshow ", "");

    interval = setInterval(slide($that), int);
    $that.hover(function(){
        interval = clearInterval(interval);
    },function(){
        interval = setInterval(slide($that), int);             
    });
});

В данный момент он выполняет своеобразныйДело в том, что в MouseEnter он ничего не делает, затем MouseLeave меняется на следующее изображение.Я чувствую, что я почти на месте, я просто не могу понять, почему setInterval не делает это, спасибо!

Я попробовал это без моего забавного небольшого интервала получения от имени класса, и вместо этого вставил число в число, но все равно не радости.

Любая помощь (снова) будет высоко ценится!

Спасибо!

1 Ответ

0 голосов
/ 27 августа 2011

Второй параметр (задержка), который setInterval () использует значение int для его установки, вы можете рассмотреть возможность использования parseInt(int) при его установке, например, так:

int = int.replace("slideshow ","");
int = parseInt(int);

или

interval = setInterval(slide($that), parseInt(int));

Надеюсь, это поможет.

...