вкладки jQuery UI. Перезагрузить активную вкладку в не-AJAX вкладке - PullRequest
2 голосов
/ 02 февраля 2010

Загрузка / Выбор (не-AJAX) вкладки из одной из других вкладок может быть сделано с помощью

$('#mytabscontainer').tabs('select', 3)

Однако мне нужно иметь возможность перезагрузить активную вкладку и метод вышене работает для этого.

$('#mytabcontainer').tabs('load', 3)

Также нет идей о том, как этого добиться?


** Решение **

На вкладках jQuery '', замените строку, содержащую:

if (($li.hasClass('ui-tabs-selected') && !o.collapsible) ||

на

if (

и добавьте CSS на страницу / или отредактируйте файлы jQuery css, чтобы вы получили:

div.ui-tabs ul li.ui-tabs-selected a {cursor: pointer !important;}

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

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

если html на вашей вкладке такой ...

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">NON AJAX TAB</a></li>
    </ul>
    <div id="tabs-1">
        NON AJAX CONTENT
    </div>
</div>

и если страница, на которой это происходит, скажем, "page.html"

$("#tabs-1").load("page.html #tabs-1");

должен сделать трюк

2 голосов
/ 02 февраля 2010

Если у вас есть этот HTML для ваших вкладок:

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="ajax/content1.html">Ajax Tab 1</a></li>
        <li><a href="ajax/content2.html">Ajax Tab 2</a></li>
    </ul>
    <div id="tabs-1">
        <p>Proin elit arcu</p>
    </div>
</div>

С вкладкой 1 является вкладкой без AJAX. Эта вкладка не имеет URL-адреса, с которого она может обновляться. Поэтому сначала вам нужно дать ему URL, прежде чем вы сможете перезагрузить его:

var tabs = $('#tabs').tabs();
tabs.tabs( 'url', 0,'ajax/content0.html');
tabs.tabs('load', 0);

Помните, что вкладки имеют нулевую индексацию.

0 голосов
/ 22 мая 2014

Вы можете просто удалить содержимое вкладки, на которую щелкнули, и перезагрузить ее с тем же содержимым (или любым другим содержимым). Например:

$( "#tabs" ).tabs({                                                                  
  activate:function(event,ui){ 
    //Remove the content of the current tab
    ui.newPanel.empty();
    //load the file you want into current panel
    ui.newPanel.load('content'+(ui.newTab.index()+1)+'.php');                                                 
  }                                                                          
});

В этом случае, например, если щелкнуть по второй вкладке, панель очищается и перезагружается с content2.php

...