|
22.08.2008, 17:28
|
Интересующийся
|
|
Регистрация: 20.08.2008
Сообщений: 12
|
|
$(document).ready(function()
{
$(".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");
});
$(".div_add a").click(
function()
{
var addzak=$(this).parent().parent().parent().parent().find("table").attr("id");
if(addzak=="tab1"){
var numb=$("#tab1 tr").length;
var str='<tr id="tr"><td>'+numb+'.</td>'
str+='<td width="4%" class="close" onclick="clos(this);"><img src="close.gif" width="14" height="14"></td>';
str+='<td class="ch" style="text-align:left;"><a>Выберите товар ...</a></td>';
str+='<td><input type="text" name="shl"></td>';
str+='<td><input type="text" name="dll"></td>';
str+='<td><input type="text" name="kol"></td>';
str+='<td><input name="metr" value="0"> руб.</td>';
str+='<td><span class="summ">0 руб.</span></td></tr>';
var add=$(str);
add.appendTo("#"+addzak);
//Как вы и сказали добавить еще раз обработчик чтобы у элемента заработал 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");
});
});
});
|
|
22.08.2008, 17:32
|
Новичок на форуме
|
|
Регистрация: 22.08.2008
Сообщений: 6
|
|
Есть очень хороший плагин listen.
Как раз для этих целей.
|
|
22.08.2008, 17:34
|
Интересующийся
|
|
Регистрация: 20.08.2008
Сообщений: 12
|
|
А без этого незя еще 20 кб лишние
|
|
22.08.2008, 18:09
|
Новичок на форуме
|
|
Регистрация: 22.08.2008
Сообщений: 6
|
|
не 20, а 2.5кб запакованный.
Можно то и без него, но это будет универсально, и гораздо облегчает работу, тем более я не думаю, такая ситуация возникнет один раз.
Это одно средство на многие случаи жизни. И не нужно будет изобретать велосипед, сомневаюсь что можно будет написать лучше.
Зачем лишние грабли??
|
|
22.08.2008, 19:36
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
BlackAngels,
А, я понял проблему. У вас по клику добавляется обработчик на все элементы еще раз. Что-то я зашел в тупик.
Первый $(".ch .a").click можно удалить - по нему этому селектору элементов все-равно на тот момент не будет. Кстати, почему ".a", если у вас просто тег? Разве не .ch a?
Последний раз редактировалось Андрей Параничев, 22.08.2008 в 19:44.
|
|
22.08.2008, 19:58
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
BlackAngels,
В общем вы можете выкрутиться вот так:
$(document).ready(function()
{
$(".div_add a").click(
function()
{
var addzak=$(this).parent().parent().parent().parent().find("table").attr("id");
if(addzak=="tab1"){
var numb=$("#tab1 tr").length;
var str='<tr id="tr"><td>'+numb+'.</td>'
str+='<td width="4%" class="close" onclick="clos(this);"><img src="close.gif" width="14" height="14"></td>';
str+='<td class="ch" style="text-align:left;"><a>Выберите товар ...</a></td>';
str+='<td><input type="text" name="shl"></td>';
str+='<td><input type="text" name="dll"></td>';
str+='<td><input type="text" name="kol"></td>';
str+='<td><input name="metr" value="0"> руб.</td>';
str+='<td><span class="summ">0 руб.</span></td></tr>';
var add=$(str);
add.appendTo("#"+addzak);
$(".ch a").each(function() {
this.onclick = function()
{
$("#Pr").animate({opacity: 'show'}, "slow", "easein");
index = $(".ch a").index(this);
val_zak=$(this).parent().parent().parent().parent().find("table").attr("id");
}
});
});
});
|
|
09.01.2009, 20:32
|
Новичок на форуме
|
|
Регистрация: 05.01.2009
Сообщений: 3
|
|
Есть такая библиотека livequery. Используется как раз для установки на динамически созданные элементы обработчиков.
|
|
15.02.2017, 15:26
|
Интересующийся
|
|
Регистрация: 17.03.2016
Сообщений: 22
|
|
Сообщение от Deexus
|
Есть такая библиотека livequery. Используется как раз для установки на динамически созданные элементы обработчиков.
|
Скачал jquery.livequery
но прикрутить не смог, к моему примему так как пока это слишком сложно для новечка ((((
|
|
15.02.2017, 15:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
Сообщение от Saratov64
|
Скачал jquery.livequery
|
не надо качать старьё, jquery есть всё для делегирования из коробки.
|
|
|
|