Подтвердить что ты не робот

Метод 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');
    });
});
4b9b3361

Ответ 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 запускается при загрузке документа и всего связанного с ним содержимого, например изображений на странице.