2012-09-10 12 views
5

Necesito poder almacenar los selectores actuales en la ventana gráfica actual y luego 10 segundos comprobar si todavía están en la ventana gráfica actual de los usuarios.Convierta los selectores de jquery en la matriz

Mi solución para esto fue almacenar los selectores en una matriz y luego en 10 segundos comparar los selectores antiguos con los nuevos y ver si coinciden. Si lo hacen ... hagan algo.

Creo que usar .each y construir la matriz, a menos que alguien tenga una solución más elegante para esto?

$('.gridContainers:in-viewport') 

Esto devolverá los selectores estándar.

+0

Yo no lo entiendo. ¿Puedes elaborar eso más en detalle? – jAndy

+0

va a tener que publicar un marcado y un javascript para que podamos tener una idea de lo que está haciendo – jackwanders

+1

[* ¿Qué ha intentado? *] (Http://mattgemmell.com/2008/12/08/what-have-you-tried /) – zzzzBov

Respuesta

14

Llamar $ (selector) devuelve un objeto jQuery similar a una matriz, no una matriz de JavaScript real, aunque a los fines de lo que intentan hacer, convertirlo a una matriz real puede ser innecesario.

Así es como se convertiría un selector en una matriz Javascript nativa.

$(selector).toArray() 

Jquery.toArray()

+0

blimey! cómo diablos lo extrañé, boyo! –

+0

no hay necesidad de llamar a .toArray() porque $ (selector) ya devuelve una matriz. – BishopZ

+0

humm, usando toArray sí lo convierte en una matriz trun js. –

-1

Pruebe método Find como abajo:

$('element').find('selection'); 

Esto dará a todos los elementos seleccionados a la matriz. Espero que esto ayude

+4

'.find()' devuelve un objeto jQuery, no una matriz. – jackwanders

+0

Esto no ayudará ya que solo encuentra un elemento que desciende en su selector actual. –

+0

Sí, pero podría ayudar a las personas a darse cuenta de que hay otra solución más simple para lo que estaban tratando de lograr utilizando una matriz. Entonces +1 de mi parte –

0

Con ES6:

Array.from($(selector)); // return JS array