Javascript &引用;类型错误:';未定义';不是一个函数;尝试使用jQuery UI时
我试图使用jQuery UI的Javascript &引用;类型错误:';未定义';不是一个函数;尝试使用jQuery UI时,javascript,jquery,css,ruby-on-rails,twitter-bootstrap,Javascript,Jquery,Css,Ruby On Rails,Twitter Bootstrap,我试图使用jQuery UI的slider()函数,并在控制台中不断出现以下错误: 类型错误:未定义的不是函数(计算jQuery(“#slider”).slider()) 我确实正确地链接了jQueryUIJavaScript和CSS文件——当我查看页面源代码时,它们都在那里。为什么我仍然会犯这个错误 如果有用的话,我使用的是Rails和一些引导程序。下面是javascript代码: <script type="text/javascript"> $(document).re
slider()
函数,并在控制台中不断出现以下错误:
类型错误:未定义的不是函数(计算jQuery(“#slider”).slider()
)
我确实正确地链接了jQueryUIJavaScript和CSS文件——当我查看页面源代码时,它们都在那里。为什么我仍然会犯这个错误
如果有用的话,我使用的是Rails和一些引导程序。下面是javascript代码:
<script type="text/javascript">
$(document).ready(function(){
$('#slider').slider();
});
</script>
$(文档).ready(函数(){
$(“#滑块”).slider();
});
谢谢
这是
:
新公司-牛津企业家OE Fort
jQuery(文档).ready(函数(){
$(“#滑块”).slider();
});
我猜想在JQuery加载之前加载此函数会导致错误(因此您会看到未定义的错误--JQuery未定义)
你能详细说明你加载代码的方式吗?你能贴上你的标签吗
可能的原因可能是:
- JQuery未加载
- JQueryUI未加载
$(“#滑块”)
不是有效的元素
该错误与应用程序.js.coffee文件中缺少一行有关。正如这里提到的:您可以在这里需要特殊的模块
因此,只需将以下行添加到application.js.coffee文件中,它就可以工作了:
#= require jquery.ui.slider
另一个可能的原因,我刚刚发现,是当您链接了两个不同版本的jquery时
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
。。。(一些其他捆绑包),然后:
bundles.Add(new ScriptBundle("~/bundles/ajax").Include(
"~/Scripts/jquery-1.10.2.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));
例如,在我的jqueryui包中,我有jquery-1.10.4.min.js(或者更确切地说,是最新版本),但在我的ajax包中,我有jquery-1.10.2.min.js。双击Chrome element inspector中的错误,显示了指向1.10.2中代码的链接。当我在ajax包中将其更改为1.10.4时,jqueryui元素突然起作用(在我的例子中是Tabs)
当然,我应该做的是把一切都留在jquery-{version}.js
总之,(n忽略)版本冲突是导致此错误的另一个可能原因。我知道这不会回答这个确切的问题,但它可能会帮助其他人获得slider()函数的相同错误消息
如果在初始化滑块时在滑块中预设了值,则可能会出现以下情况:
$('#slider').val(5).slider();
如果删除值(5),还将得到“TypeError:“undefined”不是函数”
即
相反,您需要将起始值插入到输入标记中
<input type="text" id="slider" value="5">
如果站点中的许多地方都使用了滑块,并且希望js文件包含默认值,而不是每个滑块都包含相同的信息,则可能会有这种设置。在我的例子中,我需要分散该值,这导致了此处所示的错误。如果其他人遇到这种情况,我很难选择使用asp.net
事实证明我并没有把所有的东西都包括进去,但这位先生做了一个虚拟的证明:
如果您遇到“未捕获的typeerror不是函数javascript”,请尝试此操作
它起作用了
您是在脚本之前还是之后调用滑块?在jQueryUI之前声明了jQuery吗?jQuery需要在jQueryUI脚本之前首先声明。请在页面中jQuery.js之后引用slider.js文件。我已将添加到OP:)我的钱在前两个上,或者加载顺序错误,因为为.slider()提供了无效元素
不会抛出错误。同意-查看
标记以验证加载过程将其添加到OP:)将是有益的Thanks@RichPeck似乎jquery UI没有加载-我的web inspector说加载了304响应的文件,但是页面不认为JQueryUI是手动加载JQueryUI还是使用Rails清单结构加载的?
$('#slider').val().slider();
<input type="text" id="slider" value="5">
jQuery(function($) {
// your code here
});