Показать сообщение отдельно
  #1 (permalink)  
Старый 22.06.2014, 16:36
Новичок на форуме
Отправить личное сообщение для Selen Посмотреть профиль Найти все сообщения от Selen
 
Регистрация: 24.05.2014
Сообщений: 3

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

Есть задача:
при обработке эвента вставить сформированную строку,
которая либо пришла через 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!

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

Последний раз редактировалось Selen, 22.06.2014 в 16:57.
Ответить с цитированием