2009-11-23 3 views
0

This post говорит о проблеме, что вкладки jQuery по-прежнему имеют с помощью кнопки «Назад». То, что нужно клиенту, довольно просто - когда они отжимают назад, они хотят вернуться к тому, что они только что искали. Но вкладки jQuery загружают первую вкладку, а не та, которая была выбрана, когда пользователь покинул страницу.jQuery вкладки назад кнопка

Я читал accompanying link, и он говорит: «Планируется, и Клаус работает над этим, когда найдет время».

Неужели кто-нибудь решил проблему с задней кнопкой с вкладками пользовательского интерфейса jQuery?

ответ

3

Используя решение проблемы истории сервитута публикуемого, грязное исправление проблемы кнопки назад будет периодически проверять location.hash, чтобы увидеть, если он изменился, и если у него есть, огнь нажмите событие соответствующей ссылки.

Например, используя zachstronaut.com обновленный jQuery Tabs Demo, вы могли бы добавить это к $ (документ) .ready обратного вызова, и было бы эффективно включить кнопку назад, чтобы переключать вкладки, с не более чем 500мс задержки:

j_last_known_hash = location.hash; 
window.setInterval(function() { 
    if(j_last_known_hash != location.hash) { 
     $('#tabs ul li a[href="'+ location.hash +'"]').click(); 
     j_last_known_hash = location.hash; 
    } 
}, 500); 
+0

Гений! Это сработало! –

3

Неужели вы устали обновлять расположение браузеров при переключении вкладок? http://www.zachstronaut.com/posts/2009/06/08/jquery-ui-tabs-fix.html

+0

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

0

если вы имели класс на вкладке контейнер, который был TabContainer, чтобы обновить URL, когда пользователь нажимает на вкладку, вы можете сделать это:

$(".tabContainer").tabs({ 
     select: function(event, ui) { 
      window.location.hash = ui.tab.hash; 
     } 
    }); 

тогда вместо пихты ИНГ щелчок, вы можете использовать вкладки выберите метод, если у вас есть какой-то метод getIndexForHash, который может вернуть правую вкладку номер для выбранного значения хэш-функции:

var j_last_known_hash = location.hash; 
    window.setInterval(function() { 
     var newHash = location.hash; 
     if(j_last_known_hash != newHash) { 
      var index = getIndexForHash(newHash); 
      $('.tabContainer').tabs("select",index); 
      j_last_known_hash = newHash; 
     } 
    }, 100); 
+0

Я очень сильно одолжил ответ от Atli, но просто заменил часть, в которой был вызван щелчок с вызовом метода select. – DaveH

+0

, и я должен упомянуть, что 500 мс - это долгое время для пользователя, чтобы взаимодействовать с другими вещами, и для того, чтобы чувствовать себя невосприимчивым. уменьшая до 100 мс. – DaveH

Смежные вопросы