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