Метод jquery.on() с событием load
Как мы можем использовать метод jQuery. on()
с событием load
? например Код:
<a href="#" id="add">Add</a>
<div id="initial">
<input type="text" class="abc" name="in">
</div>
И jQuery для него:
jQuery(document).ready(function() {
var x=$('#initial').html();
$('#add').click(function(){
$('body').append(x);
});
$(document).on('load','.abc',function(){
alert('started');
});
});
Ответы
Ответ 1
Обратитесь к http://api.jquery.com/on/
В нем говорится
Во всех браузерах события загрузки, прокрутки и ошибки (например, на <img>
элемент) не пузырь. В Internet Explorer 8 и ниже паста и reset события не пузырятся. Такие события не поддерживаются для использования с делегированием, но они могут использоваться, когда обработчик событий непосредственно прикрепленный к элементу, генерирующему событие.
Если вы хотите что-то сделать, когда добавлено новое поле ввода, вы можете просто написать код после добавления его.
$('#add').click(function(){
$('body').append(x);
// Your code can be here
});
И если вы хотите, чтобы один и тот же код выполнялся, когда загружается первое поле ввода в документе, вы можете написать функцию и вызвать ее в обоих местах, т.е. $('#add').click
и событии готовности документа
Ответ 2
Я не уверен, что вы собираетесь здесь - к моменту выполнения jQuery(document).ready()
он уже загружен, и, таким образом, событие t21 > load уже вызывается. Прикрепление обработчика событий load
в этот момент не будет иметь никакого эффекта, и его никогда не вызовут. Если вы пытаетесь запустить alert
"после того, как документ был загружен, просто введите его прямо в вызов (document).ready()
, например:
jQuery(document).ready(function() {
var x = $('#initial').html();
$('#add').click(function() {
$('body').append(x);
});
alert('started');
});
Если, по мере того, как ваш код также кажется инсинуацией, вы хотите запустить предупреждение, когда .abc
загрузилось, поместите его в отдельный обработчик .load
:
jQuery(document).ready(function() {
var x = $('#initial').html();
$('#add').click(function() {
$('body').append(x);
});
$(".abc").on("load", function() {
alert('started');
}
});
Наконец, я не вижу смысла использовать jQuery
в одном месте и $
в другом. Как правило, лучше поддерживать код в коде и использовать jQuery
везде или $
везде, так как они, как правило, взаимозаменяемы.
Ответ 3
Для запуска функции onLoad
jQuery(window).on("load", function(){
..code..
});
Чтобы запустить код наDOMContentLoaded (также называемый onready)
jQuery(document).ready(function(){
..code..
});
или рекомендуемая стенограмма для onready
jQuery(function($){
..code.. ($ is the jQuery object)
});
onready срабатывает, когда документ загружен
onload запускается при загрузке документа и всего связанного с ним содержимого, например изображений на странице.