Foros del Web » Programando para Internet » Jquery »

No funciona el selector en un plugin de jquery!

Estas en el tema de No funciona el selector en un plugin de jquery! en el foro de Jquery en Foros del Web. Hola!, de nuevo yo con otro problema, espero que me puedan ayudar :) Estoy desarrollando un plugin para jquery en el cual quiero modificar la ...
  #1 (permalink)  
Antiguo 07/05/2012, 21:39
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Exclamación No funciona el selector en un plugin de jquery!

Hola!, de nuevo yo con otro problema, espero que me puedan ayudar :)

Estoy desarrollando un plugin para jquery en el cual quiero modificar la propiedad css de una lista de elementos, sin embargo solo se modifica el primero de los elementos y la verdad estoy un poco perdido.

Este es el codigo:
Código jQuery:
Ver original
  1. (function($) {
  2.     $.fn.menu = function() {
  3.         $(this).find(':first li').css('margin-left','-200px');
  4.     };
  5. })(jQuery);

Nota: this es el div principal "menu", :first se refiere a la lista <ul id="tabs"> y li se refiere a todos sus elementos con la etiqueta<li> (ya lo intente con <a> pero el problema persiste igual)

Código HTML:
Ver original
  1. <div id="menu">
  2.         <ul id="tabs">
  3.             <a href=#contenido1><li>tab1</li></a>
  4.             <a href=#contenido2><li>tab2</li></a>
  5.         </ul>
  6.         <ul id="contenido1">
  7.             <li><a href="#">cont</a></li>
  8.             <li><a href="#">cont</a></li>
  9.             <li><a href="#">cont</a></li>
  10.         </ul>
  11. </div

Otra nota: es muy raro que funciona en Firefox pero no asi en Internet Explorer ni en Google Chrome, ademas las demas propiedades de estilo funcionan correctamente en todos los elementos de la lista

Última edición por shujidan; 07/05/2012 a las 21:54
  #2 (permalink)  
Antiguo 07/05/2012, 22:01
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: No funciona el selector en un plugin de jquery!

Bueno, logré crear el mismo efecto con:

$(this).find(':first li').offset({ left: -200 });

pero me quedo con la duda espero que en un futuro se pueda resolver, gracias por la atención de quien pasó por el thread.
  #3 (permalink)  
Antiguo 07/05/2012, 23:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: No funciona el selector en un plugin de jquery!

los selectores funcionan correctamente

Código HTML:
Ver original
  1. <div id="menu">
  2.         <ul id="tabs">
  3.             <li><a href="#contenido1">tab1</a></li>
  4.             <li><a href="#contenido2">tab2</a></li>
  5.         </ul>
  6.         <ul id="contenido1">
  7.             <li><a href="#">cont</a></li>
  8.             <li><a href="#">cont</a></li>
  9.             <li><a href="#">cont</a></li>
  10.         </ul>
  11. </div>
  12.  
  13. <script type="text/javascript">
  14. //<![CDATA[
  15. /* script */
  16. $('#menu ul li').css('margin-left','200px');
  17. //]]>

Pero mirá tu html, que están mal anidados los <a> y los <li> de la primera lista. Ahora que dándole un margen a los li vas a desplazar toda la lista, asi que es más lógico que so lo des al ul

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 07/05/2012, 23:29
Avatar de shujidan  
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 5
Respuesta: No funciona el selector en un plugin de jquery!

Es que el error es al usarlo dentro del plugin extendiendo la clase de jquery :)

Estoy estableciendo la propiedad margin-left únicamente en los elementos porque el color de background de la lista completa se sale del div y por motivo de crear otros efectos en el diseño. PD. el resultado es el mismo si se invierte el orden de los elementos de la lista y los enlaces.

Última edición por shujidan; 17/05/2012 a las 20:27

Etiquetas: $(this), $.each, plugin, selector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:30.