我怎样才能知道,如果窗口是一个jQuery集?(How can I tell, if window

2019-09-18 02:06发布

我希望我的jQuery插件的行为方式不同,在调用时$(window)的选择。 如何检查,如果window是在设置? 我试图至今:

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

(所有那些做工精细的document ,顺便说一句。)当然,我随时可以检查this[0]但也有优势情况下,像$('a').add(window)未通过这种方式照顾。

我还可以通过功能筛选:

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

但我希望多一点“的jQuery十岁上下的”或通用的办法。

Answer 1:

您可以使用索引() ,并将它传递的window对象。 它将返回-1如果window对象不是集合的一部分,或一组内的从零开始的索引,否则:

>>> $(window).index(window) >= 0
true

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

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


Answer 2:

据我所知,只有$(window).parent() $(document).parent()返回一个空数组。 也许你可以使用像

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


Answer 3:

.is($(window))工作原理:

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


文章来源: How can I tell, if window is in a jQuery set?