Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Повторение в функции. (https://javascript.ru/forum/jquery/21571-povtorenie-v-funkcii.html)

qwelp 15.09.2011 16:39

Повторение в функции.
 
Написал код, он добавляет tr с данными в таблицу, у каждой tr в конце создается кнопка, при нажатии на которую удаляется строка в которой находится кнопка.

Проблема: Функция $ingr_minus вызывается столько раз, сколько создано tr и соответственно вызывается confirm вызывается много раз, строка удаляется как надо, только одна.

Уже третий день не могу сделать, знающие люди помогите, решить эту проблему.

$('#ingr-plus').click(function() {
        var ingr;
        ingr = '<tr><td>';
        ingr += '<input type="text" name="ingr[summ]" value="Кол-во" /> <input type="text" name="ingr[ves]" value="Мера веса" /> <input type="text" name="ingr[comm]" value="Комментарий" />'
        ingr += '<input type="button" value="-" />';
        ingr += '</td></tr>';
        $('#ingr').append(ingr);
        $('#ingr input[type=button]').click($ingr_minus);
    });
    
    var $ingr_minus = function (event) {        
        confirm('Удалить') ? $(this).parent().parent().remove() : false;            
    }


            <table id="ingr" width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td><input type="text" name="ingr[summ]" value="Кол-во" /> <input type="text" name="ingr[ves]" value="Мера веса" /> <input type="text" name="ingr[comm]" value="Комментарий" /></td>
              </tr>
            </table>
            <input type="button" id="ingr-plus" value="+ ингредиент" />

nikita.mmf 15.09.2011 16:49

$('#ingr input[type="button"]:last').click($ingr_minus);

Serg_pnz 15.09.2011 16:53

nikita.mmf,
а с остальными что делать, если например с середины надо удалить?

qwelp,
http://zak003.jcase.ru/ может поможет, а я пока поколдую над Вашим скриптом

nikita.mmf 15.09.2011 16:57

Serg_pnz,
проблема не с удалением, а то что каждый раз при вставке, в этом скрипте навешиваются события на все кнопки, а надо только на последнюю.

Serg_pnz 15.09.2011 17:09

Вот что получилось http://javascript.info/play/fShL2

Serg_pnz 15.09.2011 17:10

nikita.mmf,
ага, понять. Тоже вариант.

qwelp 15.09.2011 18:38

nikita.mmf спасибо


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