Моего HTML документ выглядит следующим образом:Выполнение функции в неявном контексте JQuery
<html>
<head> .. load jquery and other stuff </head>
<body>
<div id="cool_container">
<div class="cool">.. no script friendly markup ..</div>
</div>
<a id="cool_link">Link</a>
<script>
function installStuff(){
$('.cool').coolPlugin();
$('#cool_link').click(function(){
$('#cool_container').load('/anothercooldiv.html');
});
}
$(document).load(function(){ installStuff(); });
</script>
</body>
</html>
Конечно, /anothercooldiv.html
дает еще один <div class="cool"> .. etc ...</div>
фрагмента.
Так что лучший способ превратить свежий прохладный div в coolPlugin, не сломав все (и написав некоторые неприятные хаки)?
Это было бы здорово, чтобы быть в состоянии либо:
вызовов installStuff с JQuery по умолчанию контекст '#cool_container', так что я мог бы назвать что-то вроде:
$.doThisInContext(function(){installStuff();}, $('#cool_container');
В обратном вызове load
.
Или есть эквивалент «живой» (что бы решить проблему связи, если прохладно содержит ссылки), но на существовании элемента, который я мог бы использовать, как, что в моей функции installStuff:
$('.cool').exists(function(what){ what.coolPlugin() };
coolPlugin
Тогда будет установлена на всех cool
элементов в настоящее время и в будущем.
Nice, это кажется немного старым, хотя, я задаюсь вопросом, почему «живой» особенность событие было интегрировано в ядре JQuery , а не «чистый элемент». – jeje
@jeje - '.live()' работает совсем по-другому ... это происходит, когда события пузырятся, что просто не происходит в этих случаях. –
Кажется, это проверка соответствия узлов каждые 20 мс. – jeje