Daily Archives: 28.01.2011
jQuery — обработка событий с использованием Namespaced Events
Часто события навешиваются на элементы так:
1 |
$('.class').bind('click', function(){}); |
А когда нужно снять обработчик события с элемента, то делается это так:
1 |
$('.class').unbind('click'); |
При этом слетят все обработчики события click с элемента. Можно снимать только конкретный обработчик, но это не очень удобно. Гораздо удобнее группировать обработчики в неймспэйсы по функциональности, а потом снимать обработчики всего неймспэйса:
1 2 3 4 |
$('.class').bind('click.namespace', function(){}); $('.class').bind('click.namespace', function(){}); $('.class').trigger('click.namespace'); $('.class').unbind('click.namespace'); |
При …
Передача параметров с сервера к jQuery. Продвинутый способ.
Старый способ передачи параметров с сервер-сайда на клиент-сайд для jQuery обычно выглядел так:
1 |
<div class="my-class" property1="prop1-value" property2="prop2-value">текст</div> |
Потом в скрипте можно было обращаться к свойствам DOM-элемента
1 |
var property1Initial = $( ".my-class" ).attr( "property1" ); |
Есть более интересный способ, использующий jQuery data:
1 |
<div class="my-class" data-property1="prop1-value" data-property2="prop2-value">текст</div> |
В скрипте можно обратиться к этим свойствам так:
1 |
var property1Initial = $( ".my-class" ).data().property1; |