Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jQuery循环插件幻灯片中删除元素会破坏它_Javascript_Jquery_Jquery Cycle - Fatal编程技术网

Javascript 从jQuery循环插件幻灯片中删除元素会破坏它

Javascript 从jQuery循环插件幻灯片中删除元素会破坏它,javascript,jquery,jquery-cycle,Javascript,Jquery,Jquery Cycle,我有一系列的是/否问题,我使用Cycle插件一次显示一个 问题在元素中 当一个问题被回答时,AJAX请求将显示使用php脚本对该问题回答是或否的人数比例,并且该问题将从中删除 这就是问题所在 表示必须停止并重新启动幻灯片放映才能删除幻灯片 当我试图通过调用$element.cycle('destroy')或$element.cycle('stop')来执行此操作时,请删除该元素,然后使用$element.cycle()重新启动,循环不会按预期继续。只发生一次转换,然后幻灯片放映停止 这是我的JS

我有一系列的是/否问题,我使用Cycle插件一次显示一个

问题在
元素中

当一个问题被回答时,AJAX请求将显示使用php脚本对该问题回答是或否的人数比例,并且该问题将从
中删除

这就是问题所在

表示必须停止并重新启动幻灯片放映才能删除幻灯片

当我试图通过调用
$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();

  });

});
$j=jQuery.noConflict();
$j(文档).ready(函数(){
var$questions=$j(“#questions”);
$questions.cycle();
$j(“#调查输入”)。单击(函数(e){
e、 预防默认值();
question=parseInt($j(this).attr('name'));
答案=$j(this.attr('value');
$j.post('process.php'{
问题:问题:,
答复:答复:
},函数(数据){
$j(“#结果p”)。替换为(“”+数据+”

); }); $questions.cycle('destroy'); $j(this).最近('.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>
  • 你喜欢呆在家里吗?

这里发生了什么?

在对这一点进行了大量的修改(双关语)之后,$('destroy')函数似乎没有正确地清除导致问题的内部状态;无论是否卸下任何幻灯片,问题仍然存在

我在这里创建了一个变通方法:


我希望这有帮助

谢谢。。。但我已经试过了。请看我的原始问题。@djb很有趣,因为它在作者的网站上工作。您是否正在使用OP中未包含的任何特定转换或选项?您好@dSquared,没有特殊选项,正如您在上面看到的那样。@djb查看更新后的答案;希望这个解决方法是有用的。太好了!焦土政策奏效了。。。plus
live()
!非常感谢。