Удаление элемента из слайд-шоу плагина jQuery Cycle разрушает его - PullRequest
1 голос
/ 15 ноября 2011

У меня есть серия вопросов да / нет, которые я отображаю по одному с помощью плагина Cycle.

Вопросы в элементе <ul>.

Когда на вопрос получен ответ, в запросе AJAX отображается доля людей, ответивших «да» или «нет» на этот вопрос с помощью сценария php, и вопрос удаляется из <ul>.

Вот в чем проблема.

Автор самого плагина цикла говорит, что необходимо остановить и перезапустить слайд-шоу, чтобы удалить слайд.

Когда я пытаюсь сделать это, вызвав $element.cycle('destroy') или $element.cycle('stop'), удалите элемент, затем перезапустите с помощью $element.cycle(), цикл не будет продолжаться, как ожидалось. Происходит только один переход, и затем слайд-шоу останавливается.

Вот мой JS:

$j = jQuery.noConflict(); 

$j(document).ready(function() {

  var $questions = $j('#questions');

  $questions.cycle();

  $j('#survey input').click(function(e) {
    e.preventDefault();
    question = parseInt($j(this).attr('name'));
    answer = $j(this).attr('value');

    $j.post( 'process.php', {
      question: question,
      answer: answer
    }, function(data) {
      $j('#result p').replaceWith('<p>' + data + '</p>');
    });

    $questions.cycle('destroy');
    $j(this).closest('.question').remove();
    $questions.cycle();

  });

});

А это мой HTML:

<ul id="questions">

    <li class="question">
      <h3>do you like to stay at home?</h3>
      <form id = "survey" action="process.php" method="post">
        <input type="submit" name = "2" value = "yes" >
        <input type="submit" name = "2" value = "no" >
      </form>
    </li>

  <!-- four or five more questions here -->

  </ul>
  <div id="result"><p></p></div>

Что здесь происходит?

1 Ответ

2 голосов
/ 15 ноября 2011

После долгих раздумий (каламбур) с этим кажется, что функция $. ('Destroy') неправильно очищает свое внутреннее состояние, которое вызывает проблему;проблема сохраняется с удалением слайдов или без них.

Я нашел обходной путь: http://jsfiddle.net/eF72L/2/

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

...