2010-10-04 3 views
0

Предположим, что я использую сторонний утилиты, и я не могу изменить код в этом прохладном. Инструмент не делает ничего, кромеКак связать с функцией динамически, аналогично live

$(this).live('click', function(){ 

this.trigger('custom:callback'); 

}); 

путь я использую это

$('a').bind('custom:callback', function(){ 
    alert('callback is being invoked'); 
}); 

Над кодом работает отлично. Однако, если я динамически создать элемент «а», то я должен запустить

$('a').bind('custom:callback', function(){ 
    alert('callback is being invoked'); 
}); 

иначе обратный вызов с помощью инструмента третьей стороны не работает.

Есть ли способ настроить привязку динамически, так что если я динамически создаю элемент 'a', тогда мне не нужно запускать код.

ответ

3

Вы можете использовать .live() с пользовательскими событиями, а также, например:

$('a').live('custom:callback', function(){ 
    alert('callback is being invoked'); 
}); 

Это должно устранить необходимость связывать друг, как кажется, хотя, если вы есть, чтобы сделать это, это то, что the .livequery() plugin по-прежнему хорошо ... это будет выглядеть так:

$('a').livequery(function() { 
    $(this).bind('custom:callback', function() { 
    alert('callback is being invoked'); 
    }); 
}); 
Смежные вопросы