使用第三方插件时,通常会在主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/

10-12 18:38