Просмотр полной версии : Событие для всех экземляров кнопки
processor
28.10.2005, 20:31
Есть экземляр кнопки, который использую раз 50. Т.е. кнопку переношу из библиотеки, а текст поверх неё пишу отдельно.
Нужно для каждого экземляра событие onRollOver & onRollOut одно и тоже.
Как мне это написать.
Вот такие события - чтоб работали для каждого экземпляра:
onRollOver=function () { fun(this._name) }
onRollOut=function () { fun() }
Сейчас у меня для каждой кнопки отдельно написано, но должно же быть что-то поуниверсальнее. Пытался сделать on (rollover) внутри кнопки ничо не получается.
artcraft
28.10.2005, 21:00
for (var i=1; i<50; i++){
eval("btn"+i).onRollOver=function () { fun("btn"+i); }
eval("btn"+i).onRollOut=function () { fun(); }
}
KidsKilla
28.10.2005, 21:05
онролловер внутри кнопки тоже выход. руки настрой.
но лучше так:
Button.prototype.onRollover = function(){
if(this._name == "blah-blah") // проверка, что это та кнопка.
doMyFunc(this._name)
}
Button.prototype.onRollout = function(){
if(this._name == "blah-blah") // проверка, что это та кнопка.
doMyOtherFunc()
}
artcraft
28.10.2005, 21:12
KidsKilla, вариант this._name == "blah-blah" тут не проканает т.к. все кнопки имеют разные имена
artcraft
28.10.2005, 21:15
кроме того, нафига переаисывать все кнопки - вдруг у него там кроме 50-ти таких кнопок еще 1000 других :~)
processor
29.10.2005, 16:13
KidsKilla спасибо - это самое то. К томуже научился события заменять для прототипов.
Это нужно абсолютно для всех кнопок, даже ненадо имена проверять. У мну при наведении на любоую кнопку ( и на поля текстовые ) появляется Quick Help в зависимости от имени кнопки.
KidsKilla
29.10.2005, 16:21
кроме того, нафига переаисывать все кнопки - вдруг у него там кроме 50-ти таких кнопок еще 1000 других :~)
=Р =)))))
можно ещё через ASBroadcaster + Button + Button.addListener(obj)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.