Помогите! Как вызвать суперфункцию!
Я нуб, нужен совет! Скрипт не то, что не работает, я просто боюсь его запускать, не узнав точно безопасно ли это!
function TableTool() {
return {
supermethod : function() {
// super action!
},
getTextField : function() {
return '<input type="text" onblur="TableTool.supermethod()">';
}
}
}
var T = TableTool();
document.writeln(T.getTextField());
Интересует момент onblur="TableTool.supermethod()": могу ли я в обработчик события посадить функцию-метод из "класса" TableTool? |
Блина, вы так мне ничего и не подсказали!
Но я подумал о таком:
...
getField() : function(m) {
return '<input onblur="' + m + '.supermethod()" ... >';
}
...
var T = TableTool();
document.writeln(T.getField('T'));
PS: не думал, что с ЧЮ тут будет так плохо. |
На самом деле работать с dom как с текстом не рекомендуется(только в особых случаях) - это раз.
Использовать document.write также можно только в особых случаях(при загрузке страницы) - это два. Делается всё это на самом деле упрощённо так:
<body>
<script>
function TableTool() {
return {
supermethod : function() {
alert(this.value)
},
getTextField : function( text ) {
var input = document.createElement('input');
input.type = 'text';
input.onblur = this.supermethod;
input.value = text;
return input
}
}
}
var T = TableTool();
document.body.appendChild(T.getTextField('test'));
document.body.appendChild(T.getTextField('test2'));
</script>
<body>
|
Aetae, спасибо, теперь понятно касаемо вставки в обработчик события внутреннего метода "класса".
По поводу работы с DOM как с текстом. По каким причинам не рекомендуется, помимо морально-этических? |
Цитата:
|
Цитата:
|
А если в ячейку таблицы нужно вставить input, затем еще какой то текст, другие теги типа img (например в ячейку нужно вставить поле типа Date с т.н. Datepicker)? Тоже делать это все через document.createElement()?
|
| Часовой пояс GMT +3, время: 21:24. |