Чего я не понимаю в .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, время: 05:27. |