jQuery插件不起作用……“类型错误:'undefined'不是一个函数”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery插件不起作用……“类型错误:'undefined'不是一个函数”相关的知识,希望对你有一定的参考价值。
我有一个使用jQuery的Ruby Rails应用程序,正在尝试加载插件,但是它不起作用;脚本以“正确”的顺序加载(即jquery,jquery_ujs,插件,自己的脚本),但是任何插件功能(特别是测试niceScroll和jScrollPane)都会失败,并显示“类型错误:'undefined'不是一个函数”。在Web Inspector中,我可以看到插件脚本在jQuery脚本之后已成功加载,但是我无法使其正常工作。
jQuery itselt可以正常工作,实际上Turbolinks和jQuery turbolinks也可以正常工作。但是,尝试调用“ $('.something').niceScroll
”(或任何其他插件)会产生上述类型错误。
这是我的aplication.js:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require jquery.turbolinks
//= require socket.io
//= require jquery.jscrollpane.min
//= require jquery.mousewheel
//= require auctions
其中放置在应用程序布局中时,将产生此(部分)html:
<head>
<title>Slamlaunch</title>
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/active_admin.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/auctions.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/marketing/marketing.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/patches.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/products.css?body=1" media="all" rel="stylesheet" type="text/css">
<link href="/assets/sessions.css?body=1" media="all" rel="stylesheet" type="text/css">
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-transition.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-affix.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-alert.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-carousel.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-collapse.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-scrollspy.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-tab.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-tooltip.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-popover.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-typeahead.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/turbolinks.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.turbolinks.js?body=1" type="text/javascript"></script>
<script src="/assets/socket.io.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.jscrollpane.min.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.mousewheel.js?body=1" type="text/javascript"></script>
<script src="/assets/auctions.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param">
<meta content="LzMLqv0Sb7+89JGe0U5x2ZGkECJ4l1gfbiD/81jFJD4=" name="csrf-token">
</head>
此外,是的,所有相关代码都在$(function(){})块中或在控制台中执行,很长时间之后加载了所有库。
出现此问题主要是因为脚本加载不正确,根据您的情况,这不是您的情况尝试将所有代码放在
中$(function(){
//your code
})
还请检查是否没有两次下载该jQuery
请尝试将所有代码放入以下附件中。然后,它为我工作。可能是插件可能未完全加载的问题,因此调用了[[“ $(document).ready(function(){})”。之后,它就像一种魅力。
(function($){
$(document).ready(function(){
//Your plugin functions to be called here.
});
})(jquery);
如果使用,在下文中“ $(document).ready(function(){})”
$(function(){});
这是行不通的。不知道为什么。
以上是关于jQuery插件不起作用……“类型错误:'undefined'不是一个函数”的主要内容,如果未能解决你的问题,请参考以下文章