Czasami możemy się spotkać z sytuacji , że ładujemy AJAX-owo jakiś kontent na przykład kilka linków i chcemy aby po zdarzeniu – przypuśćmy hover pojawił się alert z wiadomością. Dotychczas jQuery umożliwiało wykonanie takiej operacji za pomocą funkcji live, jednak od wersji 1.9 nie będzie ona już wspierana.
Z pomocą przychodzi funkcja delegate, dla przykładu:
$("body").delegate(".center_block", "hover", function ( event ) { if (event.type == 'mouseenter') { alert("Najechano mnie"); } else { alert("Jestem wolny!!"); } });
jQuery określa następujący typ argumentów:
// jQuery 1.4.3+ $(elements).delegate( selector, events, data, handler ); // jQuery 1.7+ $(elements).on( events, selector, data, handler );
To wszystko , dla każdego elementu .center_block w body, nieważne czy będzie dostępny czy załadowanych przez AJAX zostanie obsłużony nasz event.
Więcej informacji na stronie: http://api.jquery.com/delegate/