Чтобы сделать метод AJAX POST, вы можете добавить type
к объекту ajaxOptions
.Чтобы собрать данные для публикации, вы можете воспользоваться jQuery.data()
, а затем скрыть параметры POST в привязке.
<div id="tabs">
<ul>
<li><a href="#tabs-1">Preloaded</a></li>
<li><a href="ajax/content1.html">Tab 1</a></li>
<li><a href="ajax/content2.html" data-country="1" data-city="35">Tab 2</a></li>
<li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo.</p>
</div>
И JavaScript:
var postData = {};
$("#tabs").tabs({
select: function(event, ui) {
postData = {
country: parseInt($(ui.tab).data('country')),
city: parseInt($(ui.tab).data('city'));
};
},
ajaxOptions: {
type: 'POST',
data: postData,
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo.");
}
}
});
Попробуйте: JSFiddle
Если ваши параметры меняются для каждой ссылки, вам нужно будет найти способ узнать, какие параметры вы ищете.Вы можете получить индекс вкладки в событии select()
, используя ui.index
, и использовать switch
, чтобы получить разные параметры для каждого случая.Правда, это решение не очень красивое, но оно может сработать.