Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подключить метод объекта к элементу HTML (https://javascript.ru/forum/events/67411-podklyuchit-metod-obekta-k-ehlementu-html.html)

AndreyAndrey 16.02.2017 12:37

Подключить метод объекта к элементу HTML
 
Всем Привет!

Помогите решить вопрос.

- Есть конструктор с набором методов и свойств (CON)
- Усть функция, в которой переменная (VAR) инициализирует создание объекта используя CON (FN)
- У CON есть метод (M1), который принимает в качестве параметра некий html (HTML) и добавляет его по средствам INNERHTML в уже подготовленный CON элемент (ELM).

Вопрос в том, как мне добавить к HTML на onlckick метод (M2), который имеется у объекта VAR? Что-то типа onclick="VAR.M2()"

Кусок кода редактировал прямо в форумовском редакторе, может где затесалась синтаксическая ошибка :)

function fn() {
var modalwindow = createNewWindow();
  modalwindow.show('10',
    '<table style="margin: auto" width="100%">' +
    '<tr>' +
    '<td width="50%">' +
    '<input type="button" value="OK" onclick="???" width="100%" style="display: inline; border: solid 1px #44AAFF; font-size: 110%">' +
    '</td>' +
    '<td width="50%">' +
    '<input type="button" value="Cancel" onclick="???" width="100%" style="display: inline; border: solid 1px #44AAFF; font-size: 110%">' +
    '</td></tr>' +
    '</table>'
    );
}
var createNewWindow = function() {
var elm;
...
this.metod1 = function(html) {
...
elm.innerHTML(html);
};
this.metod2 = function() {
};
};

AndreyAndrey 17.02.2017 11:48

В общем как ни думал ни гадал, пришлось вынести переменную (VAR) в глобальную область видимости - как и следовало ожидать всё заработало, но всё же это не совсем то чего я хотел. Всем спасибо за посещение вопроса и да прибудут с вами знания!

var modalwindow = createNewWindow();
function fn() {
  modalwindow.show('10',
    '<table style="margin: auto" width="100%">' +
    '<tr>' +
    '<td width="50%">' +
    '<input type="button" value="OK" onclick="modalwindow.progress()" width="100%" style="display: inline; border: solid 1px #44AAFF; font-size: 110%">' +
    '</td>' +
    '<td width="50%">' +
    '<input type="button" value="Cancel" onclick="modalwindow.close()" width="100%" style="display: inline; border: solid 1px #44AAFF; font-size: 110%">' +
    '</td></tr>' +
    '</table>'
    );
}
var createNewWindow = function() {
var elm;
...
this.metod1 = function(html) {
...
elm.innerHTML(html);
};
this.metod2 = function() {
};
};


Часовой пояс GMT +3, время: 03:37.