Поскольку я не вижу весь кодовый набор ... Находится ли #edit_number_link внутри #edit_number?Если это так, вам нужно использовать метод live () jQuery, чтобы связать событие, поскольку DOM обновляется после начальной загрузки страницы.
Кроме того, вам не нужно attr('data-id')
в качестве jQuery сейчассопоставит эти атрибуты с методом .data()
.Вам нужно .data('id')
, чтобы получить это значение.
Другое дело, что вы используете ID, когда вам следует использовать класс.Предполагается, что идентификаторы являются уникальными и используются только один раз.Вы должны изменить #edit_number_link на класс .edit_number_link.Я не уверен, какой контейнер #edit_number
, но я предполагаю, что есть только один.
$('.edit_number_link').bind('click', function() {
var id = $(this).closest('tr').data('id');
$("#edit_number").data('num_id', id).dialog('close').dialog('open');
return false;
});
ОБНОВЛЕНИЕ После просмотра кода и его проверки на jsfiddle яобнаружил, что происходит то, что когда вы нажимаете на другие ссылки редактирования, диалоговое окно уже открыто и не запускает его открытый обратный вызов.Для этого нужно обновить код, чтобы диалоговое окно было закрыто перед его открытием.Мой код выше обновлен и теперь включает .dialog('close')
.Кроме того, я изменил live
обратно на bind
, так как в этом случае он не нужен.