2010-11-29 6 views
1

안녕하세요 ... jQueryUI 탭 구현은 매우 간단하고 잘 작동합니다. 글쎄, :)jQueryUI 탭 ... 비활성 탭에 컨텐츠 추가, 탭 클릭/활성화시 컨텐츠 숨김 유지

탭이 비활성화되어있는 동안 탭 중 하나에 내용이 추가됩니다. 탭을 클릭하면 내용이 표시되지 않습니다. Firebug는 표시되지만 css 속성이 display : none 인 것으로 표시됩니다.

탭이 비활성 상태이면 모든 내용이 display : none으로 설정되고 탭을 클릭하면 해당 내용이 display : block (또는 인라인, 확실하지 않음)으로 설정됩니다. 나는 페이지가로드 된 후에 여분의 내용을 추가했기 때문에 jQuery는 페이지를 "인식"하지 않는다고 가정합니다. 그래서 내가 어딘가에서 .live() 메소드를 작동시킬 필요가 있다고 추측하지만 어디에서 jQuery 탭 코드 자체를 조작해야하는 것처럼 보일지 모르겠다.

게시 할 관련 코드가 전혀 없기 때문에 매우 간단합니다 ... 누군가 도움이된다고 생각하면 여기에서 일부 발췌 문장을 보내 드리겠습니다.

요약 ... 현재 jQueryUI 탭이 비활성 상태 인 노드에 jQuery의 .append()를 사용하여 데이터를 추가하는 경우 ... 탭이 활성화 될 때 데이터를 표시하려면 어떻게해야합니까?

감사합니다.

답변

3

append() 및 jquery UI와 함께 작동해야합니다. 데이터를 탭 데이터 컨테이너에만 추가 하시겠습니까? working demo과 같은 작업을하고 계신 것으로 보입니다.

+0

실제로 작동합니다. 그 노드의 클래스 이름을 기반으로 탭 내의 다른 노드를 조작하는 코드가 있었고, 추가 한 노드도 동일한 클래스 이름을 가졌음을 깨닫지 못했습니다. (단지 동적으로 추가 되었기 때문에 표시되지 않았다고 가정했습니다. 그것을 확인해 주셔서 감사합니다. 그것은 내가 해결책을 찾고있는 잘못된 길을 계속해서 저지하는 것을 막았습니다. – charliegriefer

2

탭이 숨겨져 있으면 표시되도록 설정되어 있습니다. 그렇지 않을 때는 display : block;으로 설정됩니다. 나는 당신의 기술을 (jQuery의 append()를 사용하여) 테스트했고, 그것은 나에게 잘 작동한다. 여기 내 테스트 코드입니다 : 당신이 입력 상자에 일부 HTML을 입력 한 다음 두 번째 탭으로 이동하면

<!DOCTYPE html> 
<html> 
<head> 
    <title>Test</title> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/hot-sneaks/jquery-ui.css" rel="stylesheet" /> 
</head> 
<body> 
    Enter some HTML and hit Enter: <input id="add-content" style="width: 300px;" /><br /><br /> 
    <div id="tabs"> 
     <ul> 
      <li><a href="#tabs-1">Nunc tincidunt</a></li> 
      <li><a href="#tabs-2">Proin dolor</a></li> 
      <li><a href="#tabs-3">Aenean lacinia</a></li> 
     </ul> 
     <div id="tabs-1"> 
      <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> 
     </div> 
     <div id="tabs-2"> 
      <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p> 
     </div> 
     <div id="tabs-3"> 
      <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p> 
      <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p> 
     </div> 
    </div> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js"></script> 
    <script> 
     (function ($) { 
      $("#tabs").tabs(); 

      $('#add-content').change(function (e) { 
       var $this = $(this); 
       $('#tabs-2').append($this.val()); 
       $this.val(''); 
      }); 

     } (jQuery)); 
    </script> 
</body> 
</html> 

, 당신은이 두 번째 탭에 추가 있다고 볼 수 있습니다.