Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   вставка элемента в ДОМ со скриптом (https://javascript.ru/forum/events/48162-vstavka-ehlementa-v-dom-so-skriptom.html)

Selen 22.06.2014 16:36

вставка элемента в ДОМ со скриптом
 
Доброе время суток!

Есть задача:
при обработке эвента вставить сформированную строку,
которая либо пришла через Ajax, либо сформирована на странице
в ДОМ с выполнением всех вложенных скриптов.
Например строка такая:
<label id='noresstr' onclick='noreact()'>Нет данных! Вернитесь назад!</label>
или такая:
<table><tr onclick='editcust('id=xxx1')' onhover='....'><td>.....</td></tr>
<tr onclick='editcust('id=xxx2')'><td>.....</td></tr>
и т.д.

Суть в том, что бы вставить строку с возможностью выполнения
вложенных в нее евентов onclick, onhover и т.п.
Евенты контекстные! Заранее не известные! :)

Сразу скажу - перерыл много всего!
кому интересно - могу рассказать.
вроде как jquery .parseHTML должен подготавливать для вставки в ДОМ
jQuery.parseHTML uses a native DOM element creation function to convert the string to a set of DOM elements, which can then be inserted into the document.

и имеет третий параметр keepScripts для обработки скриптов
но он не работает!
т.е.
var str1 = "<label id='lacli' onclick='alert('Click test!')' ><b>Click проба!</b></label>";
parsedHtml = $.parseHTML(str1,document,[B]true[/B]); 
$('#tstinn').append(parsedHtml);

работает,
но мало того, что не выполняется onclick, но и самого элемента нет в ДОМ.
alert($("#lacli").id); дает undefined!

как все таки вставить?:help:

Magneto 22.06.2014 21:16

$('#tstinn').html(str1);


Часовой пояс GMT +3, время: 09:09.