Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2009, 11:55   #1
ilusha
Пользователь
 
Аватар для ilusha
 
Регистрация: 18.02.2009
Сообщений: 12
Восклицание Mootools.Проблема определения события OnClick элемента списка при его динамическом создании.

Всем привет.
Народ, я столкнулся с проблемой передачи параметров в функцию при возникновение события OnClick.
В двух словах, я генерирую список <ul><li>....</li></ul> в Mootools(library of JavaScript) и во время генерации определяю
параметры(функцию) для каждого элемента списка при возникновение события OnClick. По-замыслу, при нажатие на элемент
списка должна вызываться функция, в которую передаются параметры индивидуальные для каждого элемента, а в итоге я получаю
, что для всех элементов в функцию передаются одни и те же параметры, а именно, параметры последнего элемента.
Если кто подскажет как обойти этот баг буду очень признателен.
Вот часть кода генерации списка + код определения события:

Код:
var channel = getNodeValueFromName(clip, 'channelname');
var clip_id = getNodeValueFromName(clip, 'clip');
...
liElement = document.createElement("li");
....
$(liElement).addEvent( 'mouseover',function({
     $(this).addClass('selected');
} );
$(liElement).addEvent( 'mouseout',function(){ 
     if(this.class='selected') $(this).removeClass('selected');
});
$(liElement).addEvent( 'click', function() {
     getSearchUrl(channel, clip_id) );  
});

function getSearchUrl(name, id){
.......
window.location.href=name+'/'+id+'/';
.......
}
Я тут привел примеры событий OnMouseOut и OnMouseOver, которые работают, так что ошибки в синтаксе нет.
В итоге, при нажатие на любой элемент списка я переадресуюсь с параметрами последнего элемента.

Форматируйте ваш код! //модератор

Последний раз редактировалось SkyM@n; 24.02.2009 в 17:23.
ilusha вне форума Ответить с цитированием
Старый 25.02.2009, 10:28   #2
ilusha
Пользователь
 
Аватар для ilusha
 
Регистрация: 18.02.2009
Сообщений: 12
По умолчанию

Народ проблема решилась. Кому нужен вариант решения пишите. Выложу.
ilusha вне форума Ответить с цитированием
Старый 25.02.2009, 10:43   #3
ilusha
Пользователь
 
Аватар для ilusha
 
Регистрация: 18.02.2009
Сообщений: 12
По умолчанию

Вот решение.
[
Код:
$(liElement).addEvent( 'click', function() {  getSearchUrl(this); } );
В <li> определяете к примеру.

Код:
html+="<span  style='display: none;'>"+channel+"</span>";
html+="<span  style='display: none;'>"+clip_id+"</span>";
а в функции getSearchUrl:

Код:
function getSearchUrl(name)
{
...
var event=name.getFirst();
var clip_id=event.getNext();
event=event.get('html');
clip_id=clip_id.get('html');
window.location.href =event+'/'+clip_id+'/';
...
}

Последний раз редактировалось ilusha; 25.02.2009 в 17:42.
ilusha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переопределение события OnClick в динамическом объекте-компоненте CyberJohn Общие вопросы Delphi 8 06.01.2010 15:56
События при создании/открытия файла _symon Win Api 2 13.02.2009 21:19
Ошибка при создании головного элемента двусвязного списка Дамир Помощь студентам 1 16.11.2008 16:09
Проблема при создании БД HAMMAN БД в Delphi 4 25.04.2008 08:44
проблема при создании отчета в QuickRep Алёна БД в Delphi 2 16.11.2007 11:01