2015-04-07 59 views
0

嘿家伙我只是通过源如果modal.js要和整个以下行来了:理解复杂的,如果条件modal.js

if (!that.$element.parent().length) { 

    } 

我新的JS和jQuery在一般情况下,我figure是这里使用的not操作符,basicall我们获取$ element的父元素,然后访问length属性。但我仍然不太了解这种情况的实际用法。

这种情况可以在line 79上看到,也可以在git上看到。

谢谢。

Alex-Z。

+0

我的猜测是它只是检查给定元素已经被插入到DOM(即它有一个父)。如果你查看后面的行,如果检查失败,它实际上将它放入DOM(附加到body)。 – Carl

+0

如果模态不在身体里,它会进入身体。 –

回答

1

这基本上是检查是否存在这样的元素。每个JQuery选择器都隐式地返回一个元素列表,它可以是空的。如果长度为0,则这将在布尔上下文中计算为false,所以!如果元素不存在(元素列表为空),则在前面将使此条件成立。

1

它检查给定的元素是否已经存在于DOM中。这个逻辑可以确保它不会被添加两次:

if (!that.$element.parent().length) { 
    that.$element.appendTo(that.$body) // don't move modals dom position 
    }