jQuery .prop() 兼容性
我正在尝试通过以下方式测试 .prop()
方法是否存在于当前包含的 jQuery 中(出于兼容性原因):
if(typeof $.prop === 'function')
我希望上述条件为 true
jQuery >= 1.6
和 false
对于 jQuery
正如我从 docs 中可以理解的= 1.6
1.6
,无论如何,在 jsfiddle 上测试它会导致:
typeof $.prop === 'function'
为:
true
当jQuery >= 1.6
false
当 <代码>jQuery < 1.6 与jQuery> 1.3true
当jQuery <= 1.3
这里是一个非常非常简单的脚本,它提供了上面的结果(只需切换 jQuery 版本即可查看我所描述的内容)。
当我尝试将 .prop()
与 jQuery ie 1.3 一起使用时,我收到 .prop is not a function
错误。 在 jsfiddle 外部测试时也会出现同样的问题。 这样的行为正常吗? 我如何才能真正测试 .prop()
是否可用?
谢谢
I'm trying to test if the .prop()
method exists on the current jQuery included (for compatibility reason) via:
if(typeof $.prop === 'function')
I would expect that the condition above is true
for jQuery >= 1.6
and false
for jQuery < 1.6
as I can understand from the docs
Anyway, testing this on jsfiddle, leads to:
typeof $.prop === 'function'
is:
true
whenjQuery >= 1.6
false
whenjQuery < 1.6 and jQuery > 1.3
true
whenjQuery <= 1.3
here is the very very simple script which provide the results above (just switch jQuery version to see what I've described).
When I try to use that .prop()
with jQuery i.e. 1.3 I get the .prop is not a function
error.
The same problem occours also testing outside jsfiddle.
Is it normal such a behavior?
How could I truly test if .prop()
is available?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
alert(typeof $.fn.prop === 'function')
您想要检查位于
$ 上的 jQuery 原型上的
。这在 1.3 中是错误的。.prop
方法。 fn另外,我会避免对 jQuery 版本进行功能检测,而是支持特定版本(及更高版本)。
alert(typeof $.fn.prop === 'function')
You want to check for the
.prop
method on the jQuery prototype which lives on$.fn
. This is false in 1.3.Also I would avoid feature detection for jQuery versions and instead support a particular version (and up).
我所做的是为 jQuery 版本构建一个兼容的 prop 函数,它不使用 prop:
你可以测试这段代码: http://jsfiddle.net/JtK2Q
What I did, is build a compatible function for prop, for jQuery versions, which doesn't use prop:
You can test this code: http://jsfiddle.net/JtK2Q
您正在检查静态方法是否存在。
您需要通过编写
$.fn.prop
来检查实例方法($.fn
与$.prototype
相同)。You're checking for the existence of a static method.
You need to check for the instance method by writing
$.fn.prop
($.fn
is the same as$.prototype
).