Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Jquery 取消部分渲染?_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Jquery 取消部分渲染?

Jquery 取消部分渲染?,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,用户可以从两个单独的列表(旧集合和新集合)中为事件分配引用。两个集合都分配给同一属性。因此,最后呈现的collection\u select是表单识别的唯一对象。因此,我决定仅在用户需要时呈现第二个列表: <div id="old_collection"> <%= collection_select(stuff) %> </div> <div id="new_collection"></div> <input id="re

用户可以从两个单独的列表(旧集合和新集合)中为事件分配引用。两个集合都分配给同一属性。因此,最后呈现的
collection\u select
是表单识别的唯一对象。因此,我决定仅在用户需要时呈现第二个列表:

<div id="old_collection">
  <%= collection_select(stuff) %>
</div>

<div id="new_collection"></div>

<input id="render_new_collection" href="#" type="checkbox">New-Collection?      

<script>
    $j(function(){
      $j("#render_new_collection").click(function(){
        $j("#old_collection").toggle();
        $j("#new_collection").html("<%= escape_javascript(render(:partial => 'new_collection')) %>");
      });
    });
</script>

新系列?
$j(函数(){
$j(“#渲染新集合”)。单击(函数(){
$j(“#旧收藏”).toggle();
$j(“#新集合”).html(“‘新集合”))%>”;
});
});

这很好,但它的设置方式是一条死胡同:用户不能改变主意并使用旧集合,除非他们刷新页面。有没有办法取消渲染部分,只保留页面上的原始表单?

您可以通过在新集合和旧集合之间切换来完成此操作

$j(function(){
  $j("#render_new_collection").change(function(){
    if($j(this).is(':checked')) {
      $j("#old_collection").hide();
      $j("#new_collection").html("<%= escape_javascript(render(:partial => 'new_collection')) %>");
    }
    else {
      $j("#old_collection").show();
      $j("#new_collection").html('');
    }
  });
});
$j(函数(){
$j(“#呈现新集合”).change(函数(){
如果($j(this).is(':checked')){
$j(“#旧收藏”).hide();
$j(“#新集合”).html(“‘新集合”))%>”;
}
否则{
$j(“#旧收藏”).show();
$j(“#新收藏”).html(“”);
}
});
});
虽然这应该可以工作,但我们应该将javascript代码保存在单独的javascript文件中