2015-04-07 56 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 
    }