Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обработка событий на динамически созданных объектах (https://javascript.ru/forum/jquery/1549-obrabotka-sobytijj-na-dinamicheski-sozdannykh-obektakh.html)

ZoNT 20.08.2008 16:00

elem.onclick = function(){alert('yo-moyo')}

ZoNT 20.08.2008 16:02

Цитата:

Сообщение от Андрей Параничев (Сообщение 4794)
ZoNT,
Зачем давать такие советы в разделе jQuery?

Звиняй, не заметил, что это раздел jquery. Просто слежу за новыми сообщениями и раздел в глаза никогда не бросается... Или шрифт слишком мелки, или цвет так подобран, но глаз не цепляется...

BlackAngels 20.08.2008 16:08

Вот то что добавляется в конец таблицы то есть строка !!!

$("#div_add a").click(
  function()
	{	
		var v=$(this).parent().parent().parent().find("table").attr("id");
		var add=$('<tr id="tr"><td width="3%">1.</td><td class="ch"><a>Выберите товар ...</a></td><td class="razm"></td><td><input name="kol_list" type="text"></td><td><input name="list" value="0"> руб.</td><td class="summ">0 руб.</td></tr>');
	add.appendTo("#"+v);
	});


А вот обработчик click

$(".ch a").click(
	function()
	{
		$("#Pr").animate({opacity: 'show'}, "slow", "easein");
		index = $(".ch a").index(this);	                                                val_zak=$(this).parent().parent().parent().parent().find("table").attr("id");		
	});


То есть по нажатия на $(".ch a") плавно появляется список

Андрей Параничев 20.08.2008 16:41

BlackAngels,
И в чем проблема? Устанавливайте обработчик $(".ch a").click() после того, как добавили строку в конец таблицы (т.е. внутри $("#div_add a").click()), или я что-то неправильно понял?

BlackAngels 20.08.2008 16:52

Да спасибо все работает !!!

Вопрос другой зачем ей еще раз подсовывать обработчик

$(".ch a").click(
    function()
    {
        $("#Pr").animate({opacity: 'show'}, "slow", "easein");
        index = $(".ch a").index(this);                                                    val_zak=$(this).parent().parent().parent().parent().find("table").attr("id");        
    });


если он у иеня уже есть в начале скрипта тупость какая то или он не понимает или не видит фигня короче ?????

BlackAngels 20.08.2008 16:55

Тогда просьба как сделать такую фичу по нажатии на этот
$(.ch a) значит с зади все затемняется и видно только всплывающий div

и как еще организовать прокрутку этого diva со скролом ну то есть страница на месте а div сползает

Андрей Параничев 20.08.2008 17:17

BlackAngels,
Цитата:

Сообщение от BlackAngels
Вопрос другой зачем ей еще раз подсовывать обработчик

Обработчик вешается только на те элементы, которые доступны в модели DOM. Т.е. до того, как вы создали эти элементы и присоединили к другому элементу - прописывать обработчик бессмысленно. Это же не CSS стили, это просто селекторы, и работает по другому.

Цитата:

Сообщение от BlackAngels
Тогда просьба как сделать такую фичу по нажатии на этот
$(.ch a) значит с зади все затемняется и видно только всплывающий div

Я не работал с jQuery, поэтому тут кодом не могу помочь.

Цитата:

Сообщение от BlackAngels
и как еще организовать прокрутку этого diva со скролом ну то есть страница на месте а div сползает

Не уверен, что вы это имеете в виду, но прокрутка div делается через CSS:
.класс_элемента {
     width: ширина;
     height: высота;
     overflow-x: hidden; // Прокрутки по ширине не будет
     overflow-y: scroll; //  Прокрутка по высоте будет
}

BlackAngels 20.08.2008 17:21

Ну хоть на этом огромное спасибо !!!

BlackAngels 22.08.2008 17:01

Ребята в продолжение банкета все то ра
ботает только вот как только снова обрабатываешь
$(".ch a").click(
    function()
    {
        $("#Pr").animate({opacity: 'show'}, "slow", "easein");
        index = $(".ch a").index(this);                                                    val_zak=$(this).parent().parent().parent().parent().find("table").attr("id");        
    });


то другой $(".ch a").click обрабатывается уже два раза
и получается что div #Pr появляется как бы мелькая
то есть столько раз сколько было добавлено $(".ch a").click

вообще хрень как сделать чтобы он появлялся только один раз

Андрей Параничев 22.08.2008 17:15

BlackAngels,
Что-то я не понял, что значит "еще раз обрабатываешь"? Один обработчик должен быть установлен один раз. Можно чуть более развернуто, например выложите весь листинг, где вы устанавливаете события и кусок HTML.


Часовой пояс GMT +3, время: 05:04.