вопрос по JavaSrcipt
сделай по функции на кнопку
нельзя: пары поле-кнопка создаются динамически
если js, то надо вызов функции вешать на кнопки и передовать ссылку на объект и передавать либо this, либо имя кнопки в функцию
б) почему бы кнопке не передавать свое имя в вызываемую функцию?
в) SrcElement
б) как?
в) не понятно, можно поподробнее... Как использовать данный объект?
function addEvent(obj, evType, fn, useCapture){
if (obj.addEventListener){
obj.addEventListener(evType, fn, useCapture);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be attached");
}
}
function xGetTarget(e){
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
return targ;
}
вешаешь event на кнопку и вперед. так?
в) var s = window.event.srcElement.value, наверно. Не помню.
хотя так наверно обычно не делают
гы, кого это останавливало?!
---
...Я работаю...
чтоб нечто подобное
function addEvent(obj, evType, fn, useCapture){ if (obj.addEventListener){ obj.addEventListener(evType, fn, useCapture); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { alert("Handler could not be attached"); }}function xGetTarget(e){ var targ; if (!e) var e = window.event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode; return targ; }можно было писать и использовать?
вешаешь event на кнопку---это как?
Просто для расширения кругозора --- а вот какой-нибудь там windows.onload=foobar --- это не тру?
Попробуй повесить так на onload 2 функции.
А может кто-нить дать ссылку на какой-нибудь справочник, где описаны все функции, объекты и их свойства и методы?
Хорошего такого нет.
http://www.quirksmode.org/js/events_compinfo.html#general и т.д.
Google в помощь.
---это как?
attachEvent и addEventListener смотри.
MSDN
Наглая ложь и все такое.
---
...Я работаю антиначным аферистом...
Создаём новую функцию, вызывающую те две, и вешаем её на онлоад.
Идея старая но плохая. Exceptions?
Google в помощь - почему так нехорошо.
Интернета нету.
Так объясни, почему это некошерно.
---
A2: Потому что так завещал великий и мудрый Ибеме,
и по другому делать некошерно.
и в чем проблема?
можно, вообще, сделать честный MultiDelegate с добавлением/удалением обработчиков
Problems
A distinct drawback of the traditional model is that the onclick property can contain only one function. This becomes a problem when you want to register multiple event handlers for one event.
For instance, suppose you’ve written a module that makes it possible to drag and drop a layer. The module registers an onclick event handler to an element so that clicking on it starts the drag and drop. You have also written a module that silently keep track of user clicks and sends this information to the server onunload, so you can find out how your pages are used. This module, too, registers an onclick event handler to an element.
So what you’d really like to do is
element.onclick = startDragDrop;
element.onclick = spyOnUser;
However, it’s here that things start to go wrong. The second registration of a function to onclick overwrites the first one so that only spyOnUser is executed when the user clicks on the element.
The solution is of course to register a function that executes both other functions:
element.onclick = function {startDragDrop; spyOnUser}
Flexible registration
But suppose that you don’t use both modules on every page in your site. Now if you’d do
element.onclick = function {startDragDrop; spyOnUser}
you could get error messages because one of the two functions might be undefined. So you have to be more careful in registering your event handlers. When we want to register spyOnUser while startDragDrop may (or may not) be registered, we do:
var old = (element.onclick) ? element.onclick : function {};
element.onclick = function {old; spyOnUser};
First you define a variable old. If the element currently has an onclick event handler, put this event handler in old, if it hasn’t, put an empty function in old. Now you register a new event handler to element div. It is a function that first executes old and afterwards spyOnUser.
Now the new event handler is added to the element, while previously registered handlers (if any) are preserved.
One last problem: What if you want to remove one of the event handlers, but not the other? At the moment I’m not sure how this should be done. You’d have to edit element.onclick in some way, but I haven’t really studied this problem.
Other models
So we have seen that the traditional event registration model is simple to use, but has some nasty problems as soon as you want to add more than one event handler to the same event on the same element. The W3C event registration model solves this problem quite neatly.
можно, вообще, сделать честный MultiDelegate с добавлением/удалением обработчиковТы предлагаешь сделать то что сделано, только заново?
я предлагаю воспользоваться стандартным патерном MultiDelegate.
Надо при этом писать свой, или найти готовый - это уже отдельный вопрос.
я предлагаю воспользоваться стандартным патерном MultiDelegate
Если ты предлагаешь воспользоваться .Net штуками вместо стандартных вещей, то, надеюсь, твое предложение так и останется только предложением.
ps
ты, в курсе, что означает термин "паттерн"?
ты, в курсе, что означает термин "паттерн"?
pattern
1. сущ.
1)
а) образец, модель
б) пример (для подражания образчик
to establish, set a pattern — подавать пример
Syn:
prototype, exemplar
2)
а) модель, шаблон
Syn:
prototype
б) выкройка (в кройке и шитье)
intricate pattern — сложная, замысловатая выкройка
в) метал форма, модель (для литья)
3) рисунок, узор (на материи и т. п.)
4)
а) система, структура; принцип, модель (организации чего-л.)
behavior pattern — модель поведения
spending pattern — схема (статей) расходов
- pattern of life
б) стиль, характер (о литературном произведении, театральной постановке и т.д.)
5) амер. отрез, купон на платье
6) воен.
а) автоматная очередь
б) локализация следов на мишени после серии выстрелов; распределение попадания
•
Gram:
Verb patterns
2. гл.
1)
а) брит., диал. соответствовать; подгонять под образец
Syn:
match II 2.
б) имитировать, копировать (after, on, upon)
Syn:
imitate
2) украшать узором
I want a wallpaper patterned with roses. — Я хочу, чтобы обои были украшены узором из роз.
3)
а) делать по образцу
The railway system was patterned after the successful plan used in other countries. — Система железных дорог была построена по схеме, которая уже была успешно осуществлена в других странах.
б) редк. следовать примеру
Mary has always patterned herself on her mother. — Мери всегда следовала примеру своей матери.
Ты сколько знаешь значений слова "паттерн"?
Я не знаю твоих MultiDelegate. Судя по Google это мало кому известная вещь. Первые две ссылки на которые я залез были про .net компоненты. Объяснишь?
одно, если брать в контексте данного треда, вернее даже в контексте данного раздела форума (программирование).
что-то такое - с точностью до синтаксиса
class MultiDelegate //примитивная реализация
{
public void AddEvent(function event)
{
Events.Add(event);
}
public void RemoveEvent(function event)
{
Events.Remove(event);
}
public void OnExecute
{
foreach (function event in Events)
event;
}
List<function> Events = new List<function>
public static void AddEvent(object obj, function event)
{
if (obj.onclick == null)
obj.onclick = event;
else if (obj.onclick is MultiDelegate)
MultiDelegate)obj.onclick).AddEvent(event);
else
{
MultiDelegate delegate = new MultiDelegate;
delegate.AddEvent(obj.onclick);
obj.onclick = delegate;
}
}
}
> Ты сколько знаешь значений слова "паттерн"?
одно, если брать в контексте данного треда, вернее даже в контексте данного раздела форума (программирование)
Очень жаль. А куда относятся UML- модели например?
:
что-то такое - с точностью до синтаксиса
:
Ты предлагаешь сделать то что сделано, только заново?
"Вернемся к нашим баранам"?
uml-модели и паттерны связывает только следующее утверждение:
ряд паттернов можно с помощью uml-моделей более-менее формально описать.
> "Вернемся к нашим баранам"?
еще раз повторю: не знаю, зависит от контекста.
Оставить комментарий
Nikitin
В форме имеются несколько пар текстовых полей и кнопок "submit" с уникальными именами.При нажатии на кнопку выполняется некоторая функция.
Как мне, будучи внутри функции, узнать имя той кнопки, на которую я нажал?