На этом шаге мы рассмотрим использование пространства имен события.
Нам необходимо придать вызову метода .unbind() более высокую избирательность, чтобы он не отключал оба зарегистрированных обработчика события click. Один из способов сделать это заключается в определении пространства имен событий. При подключении обработчика мы можем указать дополнительную информацию, которая позднее позволит идентифицировать отдельные обработчики. Чтобы задействовать пространство имен, необходимо вернуться к использованию универсального метода .bind() подключения обработчиков.
Первым параметром методу .bind() передается имя события JavaScript, которое требуется обработать. Однако здесь допускается использование специального синтаксиса, позволяющего определять подкатегории событий.
$(document).ready(function() { $('#switcher').bind('click.collapse', function(event) { if (!$(event.target).is('.button')) { $('#switcher .button').toggleClass('hidden'); } }); $('#switcher-narrow, #switcher-large').click(function() { $('#switcher').unbind('click.collapse'); }); });
Рис.1. Кнопки снова работают
Полный текст этого примера можно взять здесь.Расширение .collapse недоступно системе обработки событий; события click обрабатываются данной функцией точно так же, как если бы мы записали вызов .bind('click'). Однако добавление пространства имен означает, что мы можем отключать именно этот обработчик, не оказывая влияния на обработчик события click для кнопок.
На следующем шаге мы рассмотрим повторное подключение событий.