2014-09-18 2 views
1

Я использую вкладки JQuery UI для приложения-мастера. После перестановки вкладок (часть требования клиента) индекс выбора несовместим. Мы не можем разрешить сортировку jquery на вкладках, так как только некоторые вкладки могут быть перегруппированы, а вкладки также имеют контекстное меню. Поэтому я использую команды insertAfter и insertBefore после того, как они успешно перегруппированы на стороне сервера. В скрипке язычки перестраиваются после нажатия кнопки: -Закладки JQuery UI, выбор вкладки несовместим после переустановки вкладок

Jquery Tabs Fiddle

 $("#btn").click(function(){ 
    $("#tabs ul li:nth-child(3)").after($("#tabs ul li:nth-child(1)")); 

}); 

Обновления вкладки после перегруппировки не вариант для us.any помощи будет очень ценен

ответ

1

кажется, me сначала событие select, возвращает активную вкладку, а затем изменяет вкладку. Вы не получите правильное значение, если это так. Вместо этого вы должны использовать activate событие:

Javascript:

$(function() { 
    $("#btn").click(function(){ 
     $("#tabs ul li:nth-child(3)").after($("#tabs ul li:nth-child(1)")); 
    }); 
    }); 

$("#tabs").tabs({ 
    activate: function(event,ui){ 
     var selected = $(ui.newTab).index(); 
     alert(selected); 
    } 
}); 

Вот является fiddle


EDIT:

Вы можете использовать index вместо active к найдите вкладку, на основе которой на его позиции в DOM.

+0

Я знаю о событии select. Даже при возврате предыдущей вкладки он не возвращался правильно. В вашем случае он работает из-за обновления. Мы не можем обновлять вкладки из-за огромного объема обратной передачи данных на сервер. Я редактировал скрипт –

+0

Я не говорил о событии 'select'. Я говорил о событии ** [активировать] (http://api.jqueryui.com/tabs/#event-activate) **. Кроме того, я не уверен, что вы подразумеваете под обновлением. Этот код идентичен вашему, кроме типа события. – hellaminx

+0

$ ("#tabs") .tabs ("refresh"); –

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