使用第三方插件时,通常会在主application.js
文件中对其进行初始化。
例:
$('.scroll').jScrollPane();
问题是,如果加载的页面没有
scroll
类,那么我得到:TypeError: Result of expression '$('.scroll').jScrollPane' [undefined] is not a function.
因此,为了解决这个问题,我将其包装在:
if ($(".scroll").length){
$('.scroll').jScrollPane();
}
这可以解决问题,但看起来像是一个hack。
有没有“正确”的方法来解决这个问题?
最佳答案
如果您得到:
ScrollPane' [undefined] is not a function.
...不是因为页面没有
.scroll
元素。当未加载插件(或jQuery本身)时,会发生此类错误。
如果要在多个页面上重复使用某些代码,而其中一些页面没有该插件,请改为执行以下操作:
if ( $.fn.jScrollPane ){
$('.scroll').jScrollPane();
}
关于javascript - jQuery:如何使用if语句摆脱“未定义”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4609691/