¿Cómo hacer que una clase de ciclo de par / impar, ya que los bucles en los artículos?

StackOverflow https://stackoverflow.com/questions/4012111

  •  26-09-2019
  •  | 
  •  

Pregunta

Uso de la jquery-tmpl, quiero a la presentación de la raya de las filas mediante la adición de una clase a cada segundo, por lo que a partir de datos [ 'Gato', 'perro', 'Caballo', 'Noddy'] que genera:

<li>Cat</li>
<li class="odd">Dog</li>
<li>Horse</li>
<li class="odd">Noddy</li>

Las soluciones se sugiere aquí parecía el comienzo de algo que podría estar más lejos refinado para facilitar la digestión por nosotros, de cabeza blanca.

¿Fue útil?

Solución

No importa. Complicar las cosas como de costumbre ...

Sólo seguir con el selector: rara, con addClass ...

$('#template').tmpl(data).appendTo('#list')
$("#list li:odd").addClass('odd')

Otros consejos

Sólo se encontró la solución después de unos pocos ensayos y errores. Puede usar la etiqueta {{=}} para la evaluación de la expresión:

{{each(i) Animals}}<li class="{{= i % 2 ? 'even' : 'odd'}}">...</li>{{/each}}

Por supuesto que puede modificarlo para adaptarlo a sus necesidades exactamente. - se puede poner dentro de la clase y valor vacío para imprimir par o impar

Otra solución sería utilizar una función (hay ejemplo de esto en la jquery tmpl docs), pero es feo.

@ John Mee, no creo que usted está complicar excesivamente.

En mi humilde opinión la plantilla es el lugar donde la adición del pico de clase debe tener lugar. Lógica y resultados.

Aquí es un parche para que tenga el índice dentro de una plantilla anidada. Si te gusta tener una propiedad extraña $ adicional que podría extenderse fácilmente de la siguiente manera:

jQuery.map( data, function( dataItem, index ) {
    if(dataItem){
         dataItem.$index = index;
         dataItem.$odd = index % 2 === 1;
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top