У меня есть яваскрипт функция, например:Выполнить функцию, когда элемент оказывается
function SuperTD(id,str,tooltip) {
return '<td id="' +id+ '" title="' +tooltip+ '">' +str+ '</td>';
}
SuperTD
называется и сцепляются со многими элементами, и я не хочу, чтобы изменить то, как он работает (в образующий элемент без используя строку html).
И мне нужно, чтобы вызвать функцию, когда что элементы визуализируются, например:
function SuperTD(id,str,tooltip) {
var onwhat = 'onwhat="executeFixedFunction(' + "'" +id+ "'" + ')"';
return '<td><div id="' +id+ '" title="' +tooltip+ '" ' +onwhat+ '>' +str+ '</div></td>';
}
где executeFixedFunction
является:
function executeFixedFunction(id) {
$('#' + id).uploadFile({
url:"/file/upload"
});
}
, что правильное событие, чтобы сделать это? Мне нужно инициализировать элемент file-upload всюду SuperTD
под названием
Пользователи по-прежнему используют Firefox 3.5.
EDIT больше контекста:
GridBuilder.render = function() {
// return from cache
var html = '';
// calls html += SuperTD(...)
return html;
}
GridBuilder.renderTo = function(id) {
$('#'+id).html(this.render());
// I guess this is where I should initialize the file upload, but still, is there another way?
}
Вы можете использовать [ 'MutationObserver'] (https://developer.mozilla.org/en/docs/Web/API/MutationObserver), но это очень сложно. Я предлагаю вам изменить функцию 'SuperTD', чтобы инициализировать загрузку файла (что имеет большее значение), чем использовать наблюдателя. – DontVoteMeDown
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events –
В качестве альтернативы вы можете добавить параметр обратного вызова в определение функции. 'function (id, str, tooltip, callback) {callback();}' –