Поскольку jQuery 1.4.2+ меняет способ хранения обработчиков событий, это представляется актуальным:
Лучший способ, который я нашел, это использовать пространство имен событий:
var ary_handlers = [ fn_highlight, fn_onpress, fn_cleanup ];
for ( idx = 0; idx < ary_handlers.length; idx++ ){
$('#test').bind('click.foobar',ary_handlers[idx]);
}
// and then later:
$('#test').unbind('.foobar');
В приведенном выше примере все события foobar не связаны. Обратите внимание, что если вам нужен более точный контроль зерна, вы можете указать пространство имен для каждого обработчика кликов и соотнести с вашим массивом обработчиков:
var ary_handlers = [ fn_highlight, fn_onpress, fn_cleanup ];
for ( idx = 0; idx < ary_handlers.length; idx++ ){
$('#test').bind('click.ns_' + String(idx), ary_handlers[idx]);
}
// and then later you could pick off a specific one to unbind
$('#test').unbind('.ns_2');