Остановите выполнение jquery и затем продолжите с того места, где оно осталось - PullRequest
1 голос
/ 01 июня 2009

Ну, я использую этот плагин jquery carousel ... и он работает просто отлично (у него включена автоматическая карусель), однако я пытаюсь остановить его, когда любой пользователь запускает мышь над Карусель, а затем пытается возобновить, где он оставил, после того, как мышь отсутствует. Я еще не успел это сделать, и я даже не уверен, как продолжать пытаться. Это мой код карусели (так как он очень длинный, я просто собираюсь поместить первую часть, после того, как она повторяется) ...

<div id="expertos" class="carrusel_expertos">
                                <ul>
                                    <li>
                                        <img class="izq" id="fernandocavazos" height="88px" width="77px" src="assets/img/expertos/equipo7.jpg" alt="Dr. Fernando Cavazos" title="Dr. Fernando Cavazos<br /><br />
                                        Director de Servicios T&eacute;cnicos ABS Am&eacute;rica Latina<br />
                                        Residencia: M&eacute;xico<br />
                                        Email: fernandocavazos@absmexico.com.mx<br />
                                        Medico Veterinario - Universidad Nacional Aut&oacute;noma, M&eacute;xico  <br />
                                        Fisiolog&iacute;a Reproductiva - Universidad de Edimburgo, Escocia<br />
                                        <br />
                                        Fernando esta a cargo de los programas de actualizaci&oacute;n para el equipo de servicios t&eacute;cnicos de Am&eacute;rica Latina. Sus &aacute;reas de especializaci&oacute;n incluyen manejo reproductivo en ganado de leche y carne, procedimientos de orde&ntilde;o y salud de la ubre, evaluaci&oacute;n del confort e instalaciones y salud del hato.
                                        " />    
                                        <ul id="textcontainer_der">
                                          <li><div id="nombre_experto">Dr. Fernando Cavazos</div></li>
                                            <li><div id="residencia_experto">M&eacute;xico</div></li>
                                            <li><div id="mail_experto">fernandocavazos@absmexico.com.mx</div></li>
                                      </ul>
                                  </li>
                                    <li>
                                        <img class="der" height="88px" width="77px" src="assets/img/expertos/equipo8.jpg" alt="Dr. Dr. Hernando L&oacute;pez" />    
                                        <ul>
                                          <li><div id="nombre_experto">Dr. Hernando L&oacute;pez</div></li>
                                            <li><div id="residencia_experto">USA</div></li>
                                            <li><div id="mail_experto">hlopez@absglobal.com</div></li>
                                      </ul>
                                  </li>
                                    <li>
                                      <img class="izq" height="88px" width="77px" src="assets/img/expertos/equipo9.jpg" alt="Dr. Neil Michael" />
                                      <ul id="textcontainer_der">
                                        <li><div id="nombre_experto">Dr. Neil Michael</div></li>
                                            <li><div id="residencia_experto">USA</div></li>
                                            <li><div id="mail_experto">nmichael@absglobal.com</div></li>
                                      </ul>
                                  </li>

и вот javascript, который запускает jCarousel

var carousel = $(function(){
    $("div.carrusel_expertos").carousel({
        direction: "vertical",
        loop: true,
        dispItems: 3,
        nextBtn: "<span></span>",
        prevBtn: "<span></span>",
        autoSlide: true,
        autoSlideInterval: 6000,
        delayAutoSlide: 2000,
        effect: "fade"
    });
});

и вот что я пытался остановить уже выполняющимся jCarousel:

$(function() {
    $('#expertos').mouseover(function() {
        //$(this).stop();
               $(this).die("mouseover",carousel);
       }).mouseout(function() {
        //$(this).carousel();
                $(this).live("mouseout",carousel);
    });
});

1 Ответ

1 голос
/ 05 июня 2009

Вы должны будете самостоятельно изменить плагин к нему. Если бы плагин разрабатывался как виджет пользовательского интерфейса jQuery, его было бы намного проще контролировать без необходимости его изменения.

Вы должны расширить объект params, чтобы включить параметр, который будет указывать, что карусель должна быть приостановлена ​​при наведении курсора, например, "pauseOnMouseOver".

Далее вы должны расширить объект "env" логическим значением с именем что-то вроде "paused".

Привязать обработчик события mouseover к элементу env. $ Elts.content, который установит значение env.paused в значение true, и обработчик события mouseout, чтобы установить его обратно в значение false;

Найдите раздел:

            // Launch autoslide
            if (env.params.autoSlide){
                window.setTimeout(function(){
                    env.autoSlideInterval = window.setInterval(function(){
                        env.$elts.nextBtn.click();
                    }, env.params.autoSlideInterval);
                }, env.params.delayAutoSlide);
            }

На линии

env.$elts.nextBtn.click();

добавить оператор if, например

if (!paused)

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...