пользовательского интерфейса jQuery вкладки и проблема AJAX-ссылок
Головоломка ajax и tabs link. Я просмотрел все документы и так и не могу заставить это работать.
То, что работает, - это ссылки без ajax Tab One. Что не работает, так это прямая ссылка на вкладки с другой страницы или с URL-адреса.
То есть, если я пойду в http://mydomain.com/ajaxloadedpage1/ я получаю обычный текст содержимого, а не визуализируемый на вкладке. Если я пойду в http://mydomain.com/#ajaxloadedpage1 я получаю первую вкладку Non-ajax Tab One.
Как я могу получить страницу ajax для загрузки во вкладке? Является ли это осложнением, что я загружаю содержимое ajax через php и что исходный файл не имеет .суффикс файла html?
Edit 2/11/11 все еще не работает, но я добавлю исправление, когда выясню это.
Код заголовка
ajax loader:
$(function() {
$("#tabs").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("I tried to load this, but couldn't. Try another link?");
}
}
});
});
link enabler:
$(document).ready(function(){
var $tabs= $("#tabs").tabs();
$('.ajaxloadedpage1').click(function() {
$tabs.tabs('select', 1);
return false;
}); });
(other links removed for clarity)
Код страницы:
<div id="tabs">
<ul><a href="#tabs-1">Non-ajax Tab One</a></li>
<li><a id="#ajaxloadedpage1" href="http://mydomain.com/ajaxloadedpage1/"><span>Ajax Loaded Page1</span></a></li>
<li><a id="#ajaxloadedpage2" href="http://mydomain.com/ajaxloadedpage2/"><span>Ajax Loaded Page2</span></a></li>
<li><a id="#ajaxloadedpage3" href="http://mydomain.com/ajaxloadedpage3/"><span>Ajax Loaded Page3</span></a></li>
<ul>
<div id="tabs-1">Non-ajax Tab One</div>
//This tab has link to other tabs in this fashion, and they work
<a href="#ajaxloadedpage1" class="ajaxloadedpage1" title="Ajax Loaded Page1">Ajax Loaded Page1</a>
<a href="#ajaxloadedpage2" class="ajaxloadedpage2" title="Ajax Loaded Page2">Ajax Loaded Page2</a>
<a href="#ajaxloadedpage3" class="ajaxloadedpage3" title="Ajax Loaded Page3">Ajax Loaded Page3</a>
</div></div>
<div id="ajaxloadedpage1"></div>
<div id="ajaxloadedpage2"></div>
<div id="ajaxloadedpage3"></div></div>
3 ответа:
Действительно ли у вас есть
#
в вашихid
атрибутах? Ваш пример HTML говорит следующее:<li><a id="#ajaxloadedpage1" ... <li><a id="#ajaxloadedpage2" ... <li><a id="#ajaxloadedpage3" ...
Но я думаю, что вы хотите сказать следующее:
<li><a id="ajaxloadedpage1" ... <li><a id="ajaxloadedpage2" ... <li><a id="ajaxloadedpage3" ...
Есть и другие подобные случаи.
Внутри вкладок jQuery-UI есть специальное искажение фрагмента URL, чтобы обойти различные ошибки и странности браузера; это искажение может скрывать проблему, когда вы просто щелкаете, но не тогда, когда вы попадаете туда через URL.
Вы смотрели на jQuery?функция нагрузки? http://api.jquery.com/load/
Пример: загрузите div #ajaxloadedpage из ajaxloadedpage2.php в #ajaxloadedpage2:
$('#ajaxloadedpage2').load('ajaxloadedpage2.php #ajaxloadedpage');
Я не уверен, что это то, что вы хотите, но я использую опцию cookie для вкладок пользовательского интерфейса jQuery следующим образом:
<script type="text/javascript"> $(document).ready(function(){ $("#tabs_start").tabs({ cookie: { // store cookie for a day, without, it would be a session cookie expires: 1 } }); </script>
Здесь хранится вкладка, которую я использовал при последнем посещении страницы. Просто убедитесь, что у разных наборов вкладок разные идентификаторы.