присоединение jQuery функционирует для 'загружения' события элемента

Обычно я создаю проект Модульного теста (Файл-> Новый-> Другой-> Модульный тест-> Тестовый проект). Это содержит материал, в котором я нуждаюсь так, это было достаточно хорошо до сих пор.

я использую Дельфи 2007, таким образом, я действительно не знаю, доступно ли это в 2006.

9
задан Miguel Ping 18 November 2009 в 02:12
поделиться

7 ответов

Используйте LiveQuery (плагин jQuery) и прикрепите событие загрузки к элементу ur dom (h1), в данном случае.

1
ответ дан 3 November 2019 в 07:48
поделиться

попробуйте перезаписать метод добавления, чтобы можно было добавить собственное событие?

jQuery.extend(jQuery.fn, {
    _append: jQuery.fn.append,

    append: function(j) {
        this._append(j);
        j.trigger('append');
    }
});

var el = jQuery('<h1>HI HI HI</H1>');   
el.one('append', function(e) {
    window.alert('loaded');
});    
jQuery('body').append(el);
1
ответ дан 3 November 2019 в 07:48
поделиться

Если тег создается с помощью ajax, вы можете использовать связанный узел для подписки на событие ajaxSuccess.

http://docs.jquery.com/Ajax/ajaxSuccess

$('#somenode').ajaxSuccess(function(){
     if ($('h1').length > 0) { ... }
});

Если он просто добавляется в DOM локальным сценарием, я не уверен, что можно наблюдать его создание, за исключением использования таймера для опроса.

0
ответ дан 3 November 2019 в 07:48
поделиться

Я не знаю, существует ли этот тип события, на ум приходит создание события "el-load" на основе этого учебника, а затем расширение " добавить ", чтобы узнать, есть ли у элемента это событие, чтобы вызвать его.

1
ответ дан 3 November 2019 в 07:48
поделиться

В зависимости от браузеров, которые вам нужно поддерживать, существуют события DOMNodeInserted и DOMNodeInsertedIntoDocument. . Я не могу поручиться за то, насколько хорошо они работают, но теоретически вы можете привязаться к этим событиям, а затем либо проверить новый узел и возможное поддерево, которое было вставлено, либо просто снова проверить весь документ с помощью $ (селектора) по вашему выбору, чтобы обнаружите узел, который вы ждете, чтобы увидеть его добавленным.

0
ответ дан 3 November 2019 в 07:48
поделиться

Попробуйте следующее:

var el = jQuery('<h1>HI HI HI</H1>');    
jQuery('body').append(el);
setTimeout(function(){
    window.alert('loaded');
},1000);//delay execution about 1 second

или, чтобы быть в безопасности, вот этот:

var el = jQuery('<h1>HI HI HI</H1>');    
jQuery('body').append(el);
window.checker = setInterval(function(){
    if($('someselector').length>0){ //check if loaded
         window.alert('loaded');             
         clearInterval(window.checker);
    }    
},200);

в основном это будет повторяться каждые 200 мс, пока селектор не получит результат, и завершит цикл, когда результат станет доступен

-1
ответ дан 3 November 2019 в 07:48
поделиться

Я хочу прикрепить функцию к элементу jQuery, которая запускается всякий раз, когда элемент добавляется на страницу.

Вам нужен плагин livequery , который делает именно это. Последняя функция live похожа, за исключением того, что она не будет вызывать вас при добавлении элемента. Мы пользуемся им постоянно - отлично работает.

Вы будете использовать $ ('h1'). Livequery (function () {alert ('только что добавлено');});

2
ответ дан 3 November 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: