Я использую плагин подсказки Инструментов jQuery, который инициализируется с $('selector').tooltip()
. Я хотел бы назвать это на любом текущим или будущим .tooltipper
элемент. Я полагал, что следующее будет работать:
$('.tooltipper').live('ready', function(){
$(this).tooltip()
}
Но это был неудачный---, который не запустило готовое событие. То же для загрузки. Я считал, что livequery может привести к результату, я ищу, но конечно существует способ использовать jQuery .live()
для осуществления это, рассматривая документацию говорит, что работает на все события jQuery, из которых я верю ready
тот.
Цитата из jQ API (http://api.jquery.com/live/):
В jQuery 1.3.x только следующие события JavaScript (в дополнение к пользовательским событиям) могли быть связаны с .live(): click, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover и mouseup.
Начиная с версии jQuery 1.4 метод .live() поддерживает пользовательские события, а также все события JavaScript.
Начиная с jQuery 1.4.1, даже фокус и размытие работают с live (отображение на более подходящие, пузырящиеся события focusin и focusout).
Начиная с jQuery 1.4.1 можно указать событие hover (отображение на "mouseenter mouseleave").
.live()
, похоже, не поддерживает событие ready.
Чтобы добавить к отличному ответу HurnsMobile; Рассмотрим bindReady ()
, который является внутренним вызовом, который jQuery выполняет для привязки к событию загрузки документа каждый раз, когда вы вызываете $ (some_function)
или $ (document). ready (some_function)
мы видим, почему мы не можем выполнить привязку к "ready"
:
bindReady: function() {
if ( readyBound ) {
return;
}
readyBound = true;
// Catch cases where $(document).ready() is called after the
// browser event has already occurred.
if ( document.readyState === "complete" ) {
return jQuery.ready();
}
// Mozilla, Opera and webkit nightlies currently support this event
if ( document.addEventListener ) {
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
// A fallback to window.onload, that will always work
window.addEventListener( "load", jQuery.ready, false );
// If IE event model is used
} else if ( document.attachEvent ) {
// ensure firing before onload,
// maybe late but safe also for iframes
document.attachEvent("onreadystatechange", DOMContentLoaded);
// A fallback to window.onload, that will always work
window.attachEvent( "onload", jQuery.ready );
// If IE and not a frame
// continually check to see if the document is ready
var toplevel = false;
try {
toplevel = window.frameElement == null;
} catch(e) { //and silently drop any errors
}
// If the document supports the scroll check and we're not in a frame:
if ( document.documentElement.doScroll && toplevel ) {
doScrollCheck();
}
}
}
Подводя итог, $ (some_function)
вызывает функцию, которая привязывается к:
Лучше всего привязать к тем действиям, которые могут создать новые элементы .tooltipper
, а не пытаться прослушивать событие готовности (которое происходит только один раз).