Leave a Comment
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'); |
При этом есть ещё один очень большой плюс: события разных неймспэйсов не вызывают обработчики друг друга, а click вызовет все обработчики
1 2 3 4 |
$('.class').bind('click.namespace', function(){}); $('.class').trigger('click.namespace'); // Вызовет наш обработчик $('.class').trigger('click'); // Тоже вызовет $('.class').trigger('click.other'); // Не вызовет |
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.