骨干:这是什么目的。$ el.children()。detach();?

时间:2015-03-01 21:43:09

标签: backbone.js

我正在阅读一些主干源代码,在所有父视图中,我看到以下代码行:

this.$el.children().detach();

我无法弄清楚这个目的。我认为这与我们想要因某些原因重新渲染父母的情况下重置父母内容有关。这是原因还是其他原因?

1 个答案:

答案 0 :(得分:2)

来自jquery文档:

  

.detach()方法与.remove()相同,但.detach()除外   保持所有jQuery数据与删除的元素相关联。这个   当要删除的元素要重新插入时,方法很有用   以后的DOM。

http://api.jquery.com/detach/

示例代码如图所示:

<p>Hello</p>
how are
<p>you?</p>
<button>Attach/detach paragraphs</button>

<script>
$( "p" ).click(function() {
  $( this ).toggleClass( "off" );
});
var p;
$( "button" ).click(function() {
  if ( p ) {
    p.appendTo( "body" );
    p = null;
  } else {
    p = $( "p" ).detach();
  }
});
</script>