На этом шаге мы рассмотрим решение проблемы предыдущего шага.
Для устранения этой проблемы мы воспользуемся одной из расширенных особенностей методов обработки событий в библиотеке jQuery. Во время подключения обработчика события мы можем добавить набор собственных данных, связанных с событием, которые будут доступны обработчику в момент вызова. Благодаря наличию этой возможности в нашем портфеле мы можем записать такой код:
$('<span class="page-number"></span>').text(page + 1) .bind('click', {newPage: page}, function(event) { currentPage = event.data['newPage']; repaginate(); }).appendTo($pager).addClass('clickable');
Номер новой страницы передается обработчику через свойство data события. Вследствие этого номер страницы уходит от опасности попадания в замыкание, и его значение фиксируется в момент, когда выполняется подключение обработчика. Теперь ссылки в элементе выбора страниц работают правильно, вызывая появление разных страниц, как показано на рисунке 1.
Рис.1. После устранения проблемы с замыканиями выбор страниц происходит, как ожидалось
Полный текст этого примера можно взять здесь.На следующем шаге мы рассмотрим выделение номера текущей страницы.