Редактирование строки добавлено в таблицу с помощью jQuery - PullRequest
0 голосов
/ 22 июня 2011

Я нашел этот пост: Редактирование и удаление вновь добавленной строки таблицы с использованием Jquery , и казалось, что это именно то, что я искал, но я не мог заставить их предложенное решение работать.

После вызова ajax я добавляю новую строку в таблицу.Строка выглядит примерно так:

<tr class="classRow" bgcolor="#EFE5D3" style="font-weight: bold; font-size: 1.1em;">
    <td width="35px"><a class="classEditLink classAdminFormSubmit" name="33" href="#">Edit</a></td>
    <td width="20px"><input type="checkbox" class="chkDeleteClass" name="deleteClasses[]" value="33" /></td>
    <td>CLASS101</td>
    <td>Class Description</td>
</tr>

Ссылка «Редактировать» не работает до тех пор, пока не обновится страница (я предполагаю, что это связано с тем, что она не находится в DOM сразу последобавлено в таблицу).Итак, мне нужно было найти обходной путь, который привел меня к вышеупомянутому посту.

Я изменил код оттуда, чтобы он выглядел так:

$('a').live('click', function(e){
    if ($(e.target).attr('class') == 'classAdminFormSubmit') {
        alert($(e.target).name());

        OpenEditDialog($(this));
        return false;
    }
});

Предупреждение никогда не срабатывает,так что я надеюсь, что мой селектор нуждается в настройке.Мне нужно передать выбранный тег привязки в функцию OpenEditDialog.

Ответы [ 2 ]

1 голос
/ 22 июня 2011
$( 'a' ).live( 'click', function () {

    var $this = $( this );

    if ( $this.hasClass( 'classAdminFormSubmit' ) ) {

        alert( $this.attr( 'name' ) );

        OpenEditDialog( $this );

        return false;

    }

});
0 голосов
/ 22 июня 2011

Сначала поместите ссылку в строку, которую вы только что добавили, и присвойте ей класс, скажем, это editRow.Во-вторых, используйте этот код:

$('a.editRow').live('click', function(e){

    alert($(e.target).name());

    OpenEditDialog($(this));
    e.preventDefault(); // this is better than return false;
});
...