可能重复:
jQuery test for whether an object has a method?在调用之前检查函数是否存在?
我想,如果函数调用之前就存在设置的JavaScript你能帮助我如何做到这一点,适用于该脚本
$(document).ready(function() {
$(".cs-text-cut").lettering('words');
});
可能重复:
jQuery test for whether an object has a method?在调用之前检查函数是否存在?
我想,如果函数调用之前就存在设置的JavaScript你能帮助我如何做到这一点,适用于该脚本
$(document).ready(function() {
$(".cs-text-cut").lettering('words');
});
我假设你想检查并确保lettering
存在,请试试这个:
http://api.jquery.com/jQuery.isFunction/
下面是一个例子:
if ($.isFunction($.fn.lettering)) {
$(".cs-text-cut").lettering('words');
}
+1。为了使用'isFunction',注意条件是错误的 - 不应该在窗口上检查一个。 –
以下按预期方式工作: 'if($ .isFunction(window.lettering)){' 如果您有简写方式或更好的方式请随时通知我,我会更新建议。 – gregwhitworth
该函数实际上是在'$ .fn.lettering'中,而不是'window.lettering'。 –
如果这是你要测试的lettering
功能,你可以这样做这样的;
$(document).ready(function() {
var items = $(".cs-text-cut");
if (items.lettering) {
items.lettering('words');
}
});
或者,如果你想绝对肯定items.lettering
是试图调用之前的函数,你可以这样做:
$(document).ready(function() {
var items = $(".cs-text-cut");
if (typeof items.lettering === "function") {
items.lettering('words');
}
});
或者,如果你真的不控制环境,你真的不知道,如果刻字函数调用是去工作或没有,甚至可能会引发异常,你可以把一个异常处理周围:
$(document).ready(function() {
try {
$(".cs-text-cut").lettering('words');
} catch(e) {
// handle an exception here if lettering doesn't exist or throws an exception
}
});
+1。合理的方式来检查jQuery select结果的属性。添加isFunction检查可能很好,但不是必需的。 –
绝对是我的首选方式,因为它不依赖于额外的库。 – cfx
使用此检查functi存在。
<script>
if (typeof function_name == 'function') {
//function_name is a function
}
else
{
//do not exist
}
</script>
typeof $({}).lettering == 'function'
或$.isFunction($({}).lettering)
应返回一个布尔它是否的产品尚未推出与否。
@Alexei:从这个例子来看,我认为它完全一样。即使不是,解决方案(使用'.isFunction')仍然是相同的,并且很容易转移。 –
@FelixKling,你说得对,确切地说是dup。以某种方式解释它扩大(如果一个使用元素,而不是jQuery选择器的结果)。 –