Чего я не понимаю в .each() ?
$(this.el).find("section.screen").each(function(){
var $this = $(this)
…
if($this.is("#control")) newHeight -= 60
$this.height(newHeight)
})
здесь перебираются все элементы, удовлетворяющие селектору "section.screen", и им всем задаётся хитро рассчитанная высота. По задумке нужно одному из этих элементов ("#control") высоту уменьшить на 60px, что я пытаюсь сделать строкой if($this.is("#control")) newHeight -= 60. Происходит не то, что я ожидаю. высота уменьшается на 60px у всех элементов, хотя id="control" определённо только у одного. Чего я недопонимаю в принципах работы этой конструкции? |
$(this.el).find("section.screen").each(function(){
if($(this).attr("id")=='control') {
$(this).height($(this).height()-60);
return false;
}
})
|
Deff, зачем?
Ведь return false прервёт цикл, а это не нужно. |
$(this.el).find("section.screen#control").height(newHeight);
|
Квери "знаю" слабо, но почему бы это
$(this.el).find("section.screen")
не заменить на это
$( "section.screen", this.el ).each( function( index, elem ) {
где elem - элемент из набора. p.s.: а, вообще, devote, постом выше прав :) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
ох. А сейчас пробую — и отрабатывает всё так, как ожидалось. А всё, что изменилось с тех пор, это поменялось значение, на которое нужно изменить высоту одного из блоков.
Видимо что-то я где-то упускаю, и пока совсем не понимаю, что именно, возможно и не в этом участке кода даже. |
| Часовой пояс GMT +3, время: 23:35. |