Как динамически добавлять и удалять вкладки jquery?

Что означает «ILcom» или «Z»?

blockquote>

Это типы отображения для собственных типов. Вы можете найти обзор здесь .

Native Type    | Java Language Type | Description      | Type signature
---------------+--------------------+------------------+----------------
unsigned char  | jboolean           | unsigned 8 bits  | Z
signed char    | jbyte              | signed 8 bits    | B
unsigned short | jchar              | unsigned 16 bits | C
short          | jshort             | signed 16 bits   | S
long           | jint               | signed 32 bits   | I
long long      | jlong              | signed 64 bits   | J
__int64        |                    |                  |
float          | jfloat             | 32 bits          | F
double         | jdouble            | 64 bits          | D

Кроме того, подпись "L fully-qualified-class ;" будет означать класс, однозначно указанный этим именем; например, подпись "Ljava/lang/String;" относится к классу java.lang.String. Кроме того, префикс [ для подписи создает массив этого типа; например, [I означает тип массива int.

blockquote>

Что касается вашего следующего вопроса:

Почему существует четыре типа в скобках (ILcom / sun / javadoc / ClassDoc; Lcom / sun / javadoc / MemberDoc; Ljava / lang / String; Z) и один после круглых скобок Ljava / lang / String; когда метод printDocLinkForMenu явно имеет пять параметров?

blockquote>

Поскольку вы не используете код, который, по вашему мнению, работает. Фактически исполняемый код пытается вызвать именно этот метод, описанный в сообщении об ошибке, фактически на самом деле пять параметров (значение I должно учитываться отдельно) и возвращаемый тип String, но этот метод не работает 't существует в пути к среде выполнения (пока он был доступен в пути класса compiletime), следовательно, эта ошибка. Также см. NoSuchMethodError javadoc :

Брошено, если приложение пытается вызвать указанный метод класса (статический или экземпляр), а этот класс больше не имеет определение этого метода.

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

blockquote>

Итак, проверьте, действительно ли вы используете правильную версию кода, как вы разместили в своем вопросе, и используете правильные зависимости в пути к среде выполнения и не дублируете разные версии библиотеки в пути к классам.

Обновление: исключение означает, что фактический код (неявно) пытается использовать метод следующим образом:

String s = printDocLinkForMenu(context, cd, (MemberDoc) emd, name, false);

Потому что он ожидает результата String, пока он объявлен void.

13
задан kranthi 10 March 2010 в 11:45
поделиться

3 ответа

Вы пробовали использовать метод добавления вкладок?

var tabs = $("#tabs").tabs();
$('#tabs-1 button').click(function(){
    tabs.tabs('add','/url_for_tab/','New tab');
});

Обновление - Начиная с jQuery UI 1.9, методы добавления и удаления устарели, а в jQuery UI 1.10 они были удалены.

Правильный способ сделать это для вкладок удаленного (ajax) содержимого сейчас:

var tabs = $( "#tabs" ).tabs();
var ul = tabs.find( "ul" );
$( "<li><a href='/url_for_tab/'>New Tab</a></li>" ).appendTo( ul );
tabs.tabs( "refresh" );

А когда у вас уже есть содержимое:

var tabs = $( "#tabs" ).tabs();
var ul = tabs.find( "ul" );
$( "<li><a href='#newtab'>New Tab</a></li>" ).appendTo( ul );
$( "<div id='newtab'><p>New Content</p></div>" ).appendTo( tabs );
tabs.tabs( "refresh" );
37
ответ дан 1 December 2019 в 19:07
поделиться

Я также добавляю вкладки динамически.

mytabs.tabs('add', '/url_for_tab/', 'New tab title');

работает над добавлением этой новой вкладки. в моем случае это динамический файл jsp

0
ответ дан 1 December 2019 в 19:07
поделиться
var main = document.getElementById('main');
var tabber = createMainTab();
tabber.setAttribute("id","tabber")
var mainHelper = createTabHelper();
var testH = createTabHelperElement("Test tab",tabber);
var testTab = createTab(testH);
tabber.appendChild(mainHelper);

mainHelper.appendChild(testH);
tabber.appendChild(testTab);

main.appendChild(tabber);
$(tabber).tabs();

function createMainTab(){
    var mainDiv = document.createElement("div");
    mainDiv.setAttribute("class","ui-tabs ui-widget ui-widget-content ui-corner-all");
    mainDiv.style.height="100%";
    mainDiv.onk_initialised = false;
    return mainDiv;
}
function createTabHelper(){
    var mainUl = document.createElement("ul");
    mainUl.setAttribute("class","ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
    return mainUl;
}
function createTabHelperElement(name,mainTab){
    var mainLi = document.createElement("li");
    var active = !mainTab.onk_initialised;
    mainTab.onk_initialised=true;
    if(active){
        mainLi.setAttribute("class","ui-state-default ui-corner-top ui-tabs-selected ui-state-active");
    }else{
        mainLi.setAttribute("class","ui-state-default ui-corner-top");
    }
    mainLi.onk_createdActive = active;
    mainLi.onk_id = "tab_"+cache;
    var oLink = document.createElement("a");
    oLink.setAttribute("href","#tab_"+cache);
    oLink.innerHTML = name;
    mainLi.appendChild(oLink);
    cache++;
    return mainLi;
}
function createTab(tabHelper){
    var tabDiv = document.createElement("div");
    if(tabHelper.onk_createdActive){
        tabDiv.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom");
    }else{
        tabDiv.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
    }
    tabDiv.setAttribute("id",tabHelper.onk_id);
    return tabDiv;
}
1
ответ дан 1 December 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: