jQuery UI ajax tabs - запрашивает умножение при загрузке ссылок во вкладках - PullRequest
0 голосов
/ 04 января 2011

Я использую вкладки jQuery UI, загружая содержимое вкладки через ajax. Содержимое может содержать ссылки, которые я хочу загрузить на выбранной вкладке. Для этого я использую этот код

$("#tab-div").tabs({  
    load: function(event, ui) {
    $('a:not('.targetBlank'), ui.panel).live('click', function() {
        $(ui.panel).load(this.href);
        return false;
    });
});

Я использую live (), чтобы ссылки, загруженные после начальной загрузки, также были покрыты.

Теперь представьте ситуацию, когда у вас есть 2 вкладки. Во-первых, пользователь находится в tab_a, который содержит ссылки. Пользователь нажимает на ссылку внутри tab_a, и она открывается нормально. Затем выбирается tab_b, затем tab_a и снова ссылка внутри.

так что это: tab_a -> ссылка внутри -> tab_b -> tab_a -> ссылка внутри

Теперь после того, как tab_a выбран во второй раз, и ссылка внутри него, я получаю два запроса при нажатии на ссылку. Если я повторю процесс, как только я нажму на ссылку в tab_a, я получу три запроса и т. Д.

Я не совсем понимаю, что здесь происходит.

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

1 Ответ

1 голос
/ 04 января 2011

Вам необходимо установить флажок, если содержимое уже было связано, или отменить привязку содержимого на вкладке.

Что-то вроде ui.panel.find('a').unbind() должно сработать. Убедитесь, что вы поместили его в обратный вызов изменения вкладки.

...