jQuery UI-вкладки загружаются после загрузки страницы - PullRequest
1 голос
/ 12 января 2011

Мне нужно создать несколько вкладок после загрузки DOM. Я создаю необходимую разметку, используя приложение jQuery, а затем создаю вкладки, но они не работают. Стиль применяется должным образом, вкладки отображаются, но все содержимое вкладок отображается немедленно, а вкладки ничего не делают при нажатии. Нужно ли инициализировать вкладки каким-то конкретным способом?

Вот код:

$(".edit-element").livequery(function() {
      $(".edit-element").click(
              function() {

                  //alert("Clicked");
                var id=$(this).parent().attr('id');
                 $(this).parent().append("<div id=\""+id+"_tabs\"><ul>
<li><a href=\""+id+"_tab0\">Nunc tincidunt</a></li>
<li><a href=\""+id+"_tab1\">Nunc tincidunt</a></li></ul>
<div id=\""+id+"_tab0\">Proin elit</div>
<div id=\""+id+"_tab1\">Proin elit arcu, rutrum commodo</div></div>");
$(this).remove();
$("#"+id+"_tabs").tabs();       
              }
           );

    });

livequery() есть, потому что я загружаю эти элементы удаленно, через Ajax.

Ответы [ 2 ]

1 голос
/ 12 января 2011

Я нашел ответ сам.

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

<li><a href=\""+id+"_tab0\">Nunc tincidunt</a></li>

это должно было быть

<li><a href=\"#"+id+"_tab0\">Nunc tincidunt</a></li>

Так просто.

Спасибо всем, кто оказал помощь!

0 голосов
/ 12 января 2011

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

Две приведенные ниже строки кода указывают, что вы назначаете вкладкам тот же идентификатор, что и его родительский элемент, и, следовательно, он может работать не так, как ожидалось при нажатии.

 var id=$(this).parent().attr('id');
 $(this).parent().append("<div id=\""+id+"_tabs\"><ul>
...