2014-01-10 27 views
0

Я создаю плагин для браузера (расширение сафари), которое автоматически изменяет элемент (посредством «preend»). Это можно сделать, позвонив перед именем, как:Изменение динамически созданного элемента

$(document).ready(function(){ 
    $("a").prepend("<img ...>"). 
}) 

Но, как я могу изменить элементы, которые создаются динамически с помощью JavaScript?

+0

'динамически' вы можете рассказать об этом. – Jai

+0

Вы можете сохранить элемент DOM в локальной переменной. Затем вы можете использовать его как любой другой объект JavaScript. – ppoliani

+0

@Jai «динамически» означает, например, элемент или элемент html, созданный обратным вызовом ajax. –

ответ

1

Вы можете первым создать объект:

$(document).ready(function(){ 
    var img = $("<img ...>"); 
    $("a").prepend(img); 
    // do something with img 
}); 
+0

Это не моя точка вопроса, но спасибо за ваш комментарий. Я обновил вопрос. –

+0

Это такой странный ответ. Я не вижу никакого реального ответа, кроме кода из вопроса! –

+0

@alFReDNSH OP заменил исходный вопрос кодом из этого ответа ... – qwertynl

-1

Вы можете создать триггер,

$(document).ready(function(){ 
     $("a").prepend("<img id="imgId"...>"). 
     $(document).trigger('asd'); 
    }) 
$(document).on('asd', function() { 

    }); 

Или вы можете создать у слушателя событий

$(document).ready(function(){ 
      $("a").prepend("<img id="imgId"...>"). 

}) 
$(document).on('click','imgId',function(){ 

}); 
+0

Извините, но «кликнуть» или другое событие вызывается только тогда, когда оно «кликнуто» не тогда, когда оно создано ... –

1

Вы можете слушать изменения DOM:

$("body").on("DOMSubtreeModified", function(){ 
    alert('DOM changed'); 
}); 

И чем выяснить, что изменилось. Но из вашего вопроса неясно, что вы хотели бы сделать.

0

Вы можете сохранить объект, создать в глобальной переменной, она доступна по всей веб-страницы ... Как так:

var img; 
$(document).ready(function(){ 
    img = $("<img ...>"); 
    $("a").prepend(img). 
}); 

Тогда позже в какой-либо другой функции или что-то ...

$(img).click(function() { 
    // blah 
}); 
Смежные вопросы