如果窗口在jQuery集中,我怎么知道呢?
我希望我的jQuery插件在$(window)
选择上调用时表现不同。 如果window
在设置中,我该如何检查? 到目前为止我的尝试:
>>> $(window) == $(window) false >>> $(window).is(window) false >>> $(window).filter(window).length 0
(顺便说一下,那些都适用于document
。)当然我总是可以检查this[0]
,但是有一些边缘情况,比如$('a').add(window)
,这种方法没有提供。
我也可以通过function过滤:
>>> $(window).filter(function() { return this === window; }).length 1
但我希望更多’jQuery-ish’或通用方法。
您可以使用index()并将其传递给window
对象。 如果window
对象不是集合的一部分,则返回-1
,否则返回集合中从零开始的索引:
>>> $(window).index(window) >= 0 true >>> $("a").add(window).index(window) >= 0 true >>> $("a").index(window) >= 0 false
AFAIK,只有$(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
.is($(window))
有效:
$(window).is($(window)) //true $('a').add(window).is($(window)) //true