Come posso sapere se la finestra si trova in un set jQuery?

Voglio che il mio plugin jQuery si comporti diversamente, quando viene chiamato su una selezione $(window) . Come posso verificare se la window è nel set? I miei tentativi finora:

 >>> $(window) == $(window) false >>> $(window).is(window) false >>> $(window).filter(window).length 0 

(A proposito, tutti funzionano bene per i document .) Naturalmente posso sempre controllare this[0] , ma ci sono casi limite come $('a').add(window) che non sono soddisfatti da questo approccio.

Posso anche filtrare tramite la funzione:

 >>> $(window).filter(function() { return this === window; }).length 1 

ma speravo in un po ‘più “jQuery-ish” o approccio generico.

Puoi usare index () e passargli l’object window . Restituirà -1 se l’object window non fa parte del set, o il suo indice a base zero all’interno del set altrimenti:

 >>> $(window).index(window) >= 0 true >>> $("a").add(window).index(window) >= 0 true >>> $("a").index(window) >= 0 false 

AFAIK, solo $(window).parent() e $(document).parent() restituiscono un array vuoto. Forse puoi usare qualcosa del genere

 var test = window //undefined $(test).parent().length == 0 && !$(test).is(document) //true test = document //#document $(test).parent().length == 0 && !$(test).is(document) //false 

Il file .is($(window)) funziona:

  $(window).is($(window))​ //true $('a').add(window).is($(window)) //true