2011-02-17 9 views
7

me gustaría generar pestañas dinámicas. por lo que las etiquetas de anclaje no tendrán id. también las etiquetas div no tendrán identificación.¿es posible usar pestañas sin usar la etiqueta de anclaje y la identificación?

esto es lo que trato de hacer, pero no funciona.

<script> 

     $(function() { 
      $("#tabs").tabs(); 

      $("#tabs ul.super li a").each(function (index) { 
       $(this).click(function() { 
        $("#tabs").tabs("select", index); 
       }); 
      }); 
     }); 

    </script> 
    <div id="tabs"> 
     <ul class="super"> 
      <li><a>title 1</a></li> 
      <li><a>title 2 </a></li> 
     </ul> 
     <div> 
      content1 
     </div> 
     <div> 
      content2 
     </div> 
    </div> 

¿Cómo puedo hacer que funcione así?

+0

me pregunto que si Tab será crear en tiempo de ejecución? –

Respuesta

4

Es el código de Workind. Dynamicaly añadir pestaña de y es

<div id="tabs"> 
    <ul class="super"> 
     <li><a>title 1</a></li> 
     <li><a>title 2 </a></li> 
    </ul> 
    <div> 
     content1 
    </div> 
    <div> 
     content2 
    </div> 
</div> 
<script> 
    $(function() { 
     $("#tabs ul.super li a").each(function (index) { 
      $(this).attr("href", "#spec" + index.toString());    
     }); 
     $("#tabs div").each(function (index) { 
      $(this).attr("id", "spec" + index.toString()); 
     }) 
     $("#tabs").tabs(); 
    });  
</script> 
+0

¡Muchas gracias! ¡Esto me estaba volviendo loco por unas horas! – Funky

+0

Esto no funciona para mí en IE9, ¿sabes por qué? – nmat

+0

debe funcionar. es posible que deba asegurarse de que el enlace de la biblioteca JQuery. –

6

Usando el código de la Nuri Yilmaz anterior, aquí se trata de un plugin de jQuery pestañas que hacen uso de ninguna identificación en todo:

/** 
* use: 
* 
* <div class="myTab"> 
*  <ul class="super"> 
*   <li><a>Tab label</a></li> 
*   ... some more tab lables 
*  </ul> 
*  <div class="tab_el">some content</div> 
*  ... some more div.tab_el 
* </div> 
* 
* <script> 
*  $('div.myTab').noIdTab(); 
* </script> 
*/ 


(function($){ 

    $.fn.noIdTab = function() { 

     this.each(function(){ 

      var rand = 'spec' + (new Date()).getTime() + Math.floor((Math.random()*25)+65); 

      $(this).find('ul.super li a').each(function (index) { 
       $(this).attr("href", "#" + rand + index.toString());    
      }); 

      $(this).find('div.tab_el').each(function (index) { 
       $(this).attr("id", rand + index.toString()); 
      }); 
      $(this).tabs(); 

     }); 
    }; 
})(jQuery); 
+0

¿De dónde viene este código? – SandRock

+0

¿Su código admite pestañas verticales? http://jqueryui.com/resources/demos/tabs/vertical.html – gonzo

+0

@ gonzela2006 revisa este violín funcional: http://jsfiddle.net/e8jcuq90/2/ – bradypus

Cuestiones relacionadas