Функция attr в jquery работает только один раз - PullRequest
1 голос
/ 22 июля 2010

Я использую этот фрагмент, чтобы показать диалог. Однако это прекрасно работает: заголовок будет установлен только при первом нажатии на ячейку таблицы. После перезагрузки страницы снова устанавливается заголовок - на один раз. До бесконечности ...

$(document).ready(function() {
    $("td[id^='_ctl0_tbl_content_reportid_']").click(function() {
        var tokens = this.id.split('_');
        var last_index = tokens.length - 1;
        var _dialog = $("#reportid_dialog_" + tokens[last_index]);
        var _title = _dialog.attr("title");

        _dialog.dialog({
            modal: true,
            closeText: 'Hide',
            width: 450,
            title: _title
        });
    });
)};

Я использую jQuery 1.4.2 с jQuery-ui 1.8.2 Может быть, кто-нибудь скажет мне, что я делаю неправильно.

Ответы [ 2 ]

3 голосов
/ 22 июля 2010

dialog() перемещает элемент, который вы передаете ему, чтобы он больше не соответствовал селектору. Может ли это быть?

2 голосов
/ 22 июля 2010

Я думаю, что вы столкнулись с проблемой двойного селектора. Так как ваш выбор:

$("#reportid_dialog_" + tokens[last_index]);

Во второй раз, когда вы нажимаете на ячейку таблицы и вызываете диалоговое окно (), есть 2 экземпляра #reportid_dialog_, которые могут привести к конфликту идентификатора при попытке установить attrs

...