Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамически прикреплённые события
 
 автор: sl1p   (03.12.2008 в 18:45)   письмо автору
 
 

есть функция в которой каждый раз при её вызове счётчик увеличивается на единицу.
В ней создаётся элемент и ему присваивается событие, например:

counter++;
el.onblur = function(){alert(counter)}


и каждый раз алертит не присвоенное число, а настоящий номер counter.

собсно вопрос как приаттачить в событие номер каунтера но чтобы он оставался статическим?:)

  Ответить  
 
 автор: PAT   (04.12.2008 в 08:19)   письмо автору
 
   для: sl1p   (03.12.2008 в 18:45)
 

Значение counter при создании элемента надо "вбить" в какой-либо из атрибутов создаваемого элемента. Например, в имя класса
el.className = 's' + counter;

Функцию, реагирующую на onblur, необходимо сделать чуть посложнее, чем она сейчас есть - она должна определить источник события
var evt = evt ? evt : window.event;
var source = evt.target ? evt.target : evt.srcElement;
, "вытащить" значение его класса и проалертить подстроку
alert (source.className.substring (1));

  Ответить  
 
 автор: sl1p   (04.12.2008 в 09:57)   письмо автору
 
   для: PAT   (04.12.2008 в 08:19)
 

хм, спасибо усёк:)

Вот сидел ещё до вашего ответа тестил, если создать переменную внутри функции которая создаёт элемент и присваивает событие, присвоить ей значение этого самого counter, ну и собсно вставить в событие, тогда тоже нормально реагирует..
Такой вариант приемлем?:)

  Ответить  
 
 автор: PAT   (04.12.2008 в 12:06)   письмо автору
 
   для: sl1p   (04.12.2008 в 09:57)
 

Приемлем.
Только переменных таковых (глобальных) будет столько же, сколько и создаваемых элементов.
Т.е. массив глобальный надо создавать.
Или "eval'ить", что я никогда никому не советую, ибо это очень долго обрабатывается.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования