Здравствуйте.
Есть скрипт, который на лету создает форму. Скрипт выполнен в виде класса для того, чтобы этих форм можно было создать несколько. Мне необходимо на обработку нажатия кнопки навесить выполнение метода класса.
Как это сделать?
PS. Кажется непонятно объяснил что нужно, но как это сказать подругому не представляю.
Здравствуйте, solenko, Вы писали:
S>Здравствуйте.
S>Есть скрипт, который на лету создает форму. Скрипт выполнен в виде класса для того, чтобы этих форм можно было создать несколько. Мне необходимо на обработку нажатия кнопки навесить выполнение метода класса.
S>Как это сделать?
S>PS. Кажется непонятно объяснил что нужно, но как это сказать подругому не представляю.
// В общем случае, если обработчиком нужно сделать метод
// myMethod с параметрами k, l и m.
button.addEventListener("click", function(a, b, c)
{
return function()
{
this.myMethod(a, b, c)
}
} (k, l, m), false);
Весьма удобно (IMHO) делать для кнопки(и не только) js-обертки, передавая в конструкторе id объекта.
function __get(id)
{
if (document.layers)
{
return document.layers[id];
}
if (document.getElementById)
{
return document.getElementById(id);
}
if (document.all)
{
return document.all[id];
}
}
function button(id)
{
this.object = __get(id);
this.id = id;
this.defaultClassName = this.object.className;
this.object.object = this;
this.object.onclick = function onClick() {
}
this.object.onmouseover = function onmouseover() {
this.className = this.object.defaultClassName + 'Active';
}
this.object.onmouseout = function onmouseout() {
this.className = this.object.defaultClassName;
}
}
This game has no name. It will never be the same.
solenko wrote:
> Есть скрипт, который на лету создает форму. Скрипт выполнен в виде
> класса для того, чтобы этих форм можно было создать несколько. Мне
> необходимо на обработку нажатия кнопки навесить выполнение метода класса.
> Как это сделать?
>
> PS. Кажется непонятно объяснил что нужно, но как это сказать подругому
> не представляю.
Я обычно так пишу:
function TheClass()
{
this.foo = 'blah'
}
TheClass.prototype=
{
aMethod: function(id)
{
var self = this // вот тут и то, что тебе нужно ;)
getElementById(id).onclick = function()
{
alert(self.foo) // а тут оно используется. ;)
}
}
}
Posted via RSDN NNTP Server 2.0
Здравствуйте, solenko, Вы писали:
S>Здравствуйте.
S>Есть скрипт, который на лету создает форму. Скрипт выполнен в виде класса для того, чтобы этих форм можно было создать несколько. Мне необходимо на обработку нажатия кнопки навесить выполнение метода класса.
S>Как это сделать?
S>PS. Кажется непонятно объяснил что нужно, но как это сказать подругому не представляю.
к дополнению для броузерной гибкости
function CheckedForm(e) {
var obj = document.getElementById("apt");
if (obj != null && typeof obj == "object") {
if (obj.attachEvent) {
try {
obj.attachEvent("onclick", function (e) { Compare("Email2ID","EmailID",locale["JAVASCRIPT_ERROR_EMAILS_CMP"], e); });
} catch(err) {
;
}
} else if (obj.addEventListener) {
try {
obj.addEventListener("click", function (e) { Compare("Email2ID","EmailID", locale["JAVASCRIPT_ERROR_EMAILS_CMP"], e); }, true);
} catch(err) {
;
}
} else {
}
}
}