Практическое использование метода jQuery $().each() для презентации
Вопрос
Сегодня я представляю коллегам презентацию о том, как использовать jQuery с ColdFusion.Это скорее введение в jQuery, чем расширенный сеанс.Я пытаюсь показать, как можно использовать цикл, используя метод jQuery $().each(), и пытаюсь придумать несколько практических примеров из реальной жизни, но у меня ничего не получается.Какие-либо предложения?
Решение
// changes every other div green
$("div").each(function(i) { if (i % 2) this.style.backgroundColor = "green"; });
Другие советы
Пропусти это.В любом случае, это сбивает с толку новых пользователей.jQuery возвращает массивы объектов и уже применяет к каждому вызов функции, что неочевидно для нуба.Вы потратите время на каждый(), и все, что вы от него получите, — это люди, которые это делают. $('a').each().css("color", "red");
или $('a').each(function(){ $(this).css("color", "red");});
Не спрашивайте, откуда я знаю, что новички, столкнувшиеся с .each(), могут совершить эту ошибку.
Установите все флажки в сетке данных на основе значения какого-либо внешнего флажка.
$('#<%=dgMyDataGrid.ClientID %> :checkbox').each(function(i)
{
this.checked = $(#SelectAll).is(":checked")
});
Изначально у меня был код метода findcontrol() вместо #SelectAll, но, надеюсь, это иллюстрирует то, что я пытался сделать.Эта функция также была привязана к событию щелчка #SelectAll.
(также отметим, что я новичок в jQuery!)
редактировать:полная реализация того, для чего я это использовал, здесь если кому интересно :)
Использование каждого() в JQuery
Вы можете увидеть мою попытку создать очень простой код расширяемого газетного столбца «более/менее».Вот код, который использует функциюeach().Я постарался сделать это простым — без счетчиков, без сохранения в var и без использования индекса, вот код:
См. живую демо-версию и исходный код на моем веб-сайте. Здесь, в Манисе Турикш
JQ-код
$(document).ready(function(){
$(".expand").each(function() {
$('p', this).hide(); //hide all p's for each div class=expand
$('p:first', this).show(); //show only first p in each div
$('.more',this).show(); //show more link belw each div
});
$('.more').toggle(
function() {
$(this).prevAll().show(); // toggle on to show all p's in div id=expand selected by this id=more
$(this).html('less..'); //change legend to - less - for this id=more when div is expanded
},
function() {
$(this).prevAll().not('p:last,h3').hide(); //hide all p's except first p, counts backwards in prevAll and reshow header h3 as it was hidden with prevAll
$(this).html('more..'); //change legend to - more - for this id=more when div is collapsed
});
});
CSS-код
body {font-family:calandra;font-size:10px;}
.expand {width:17%;margin-right:2%;float:left;} /*set div's as newspaper columns */
p {display:block;} /*always display p's when JS is disabled */
.more{color:red;display:none;} /*never display a's when JS is disabled */
Немного html-кода
<div class="expand">
<h3>Headine 1</h3>
<p>1.A paragraph typically consists of a unifying main point, thought, or idea accompanied by supporting details. The non-fiction paragraph usually begins with the general and moves towards the more specific so as to advance an argument or point of view.</p>
<p>2. Each paragraph builds on what came before and lays the ground for what comes next. Paragraphs generally range three to seven sentences all combined in a single paragraphed statement. In prose fiction successive details, for example; but it is just as common for the point of a prose paragraph to occur in the middle or the end.</p>
<p>3 A paragraph can be as short as one word or run the length of multiple pages, and may consist of one or many sentences. When dialogue is being quoted in fiction, a new paragraph is used each time the person being quoted changed.11</p>
<p>4 The last paragraph</p>
<a href="#" class="more">more</a>
</div>
<div class="expand">
<h3>Headine 2</h3>
<p>Amet vestibulum. Nisl a, a eros ut, nec vivamus. Tortor nullam id, metus ut pretium. Amet sociis. Ut justo. Amet a est, dolor integer, purus auctor pretium.</p>
<p>Libero sapien sed, nulla nullam. Porta tincidunt. Suspendisse ante ac, eget fermentum vivamus. Ipsum sapien placerat. Adipiscing lorem magna, urna tortor dictum.</p>
<p>Fringilla a morbi, sed sollicitudin magna. Justo et in, sem aenean, molestie integer tincidunt. Magna quo, erat odio. Posuere enim phasellus, dui pede. Sit a mauris, metus suscipit.</p>
<p>Lobortis et, pellentesque nec, suspendisse elit quisque. Justo vestibulum debitis, augue fermentum. Orci et id. Ut elit, tortor ut at. Eum et non, faucibus integer nam, ac ultrices augue.</p>
<p>Ultricies magnis, velit turpis. Justo sit, urna cras primis, semper libero quam. Lectus ut aliquam. Consequat sed wisi, enim nostrud, eleifend egestas metus. Vestibulum tristique. Et erat lorem, erat sit.</p>
<p>Aliquam duis mi, morbi nisl. Rhoncus imperdiet pede. Sit et. Elit fusce, feugiat accumsan incididunt. Nec ipsum feugiat, accumsan dictum massa. Nec sit.22</p>
<a href="#" class="more">more</a>
</div>
Я постарался сделать это как можно проще, используя функциюeach().
Джон Гиз