Помогите! Как вызвать суперфункцию!
Я нуб, нужен совет! Скрипт не то, что не работает, я просто боюсь его запускать, не узнав точно безопасно ли это!
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, время: 01:06. |