我还需要做些什么来插入jQuery UI
What else do I need to do to plug in jQuery UI?
我正在使用jQuery UI选项卡构建一个页面,我看到了一些效果,但不是预期的效果。用于存储选项卡标题的UL是有线的,因此UL和选项卡内容是同一个较大DIV的一部分。控制台包含一些描述的诊断信息,但在我的代码、其他人的代码、资源加载等中没有报告错误。我检查了JavaScript/CSS的链接,它们都指向看起来像JavaScript/CSS:的真实资源
<link href='//fonts.googleapis.com/css?family=Averia+Serif+Libre:400,700,400italic,700italic' rel='stylesheet' type='text/css' />
<link href='/jquery-ui-1.12.0.custom/jquery-ui.css' />
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script src="/javascripts/bgstretch.js"></script>
显示,就CSS的表现而言,正是在不尝试应用jQueryUI的情况下所能看到的。然而,调试器确实显示添加的类,这是jQueryUI将UL和一些DIV转换为选项卡式显示时所期望的,例如:
<a href="#living-room" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-6">Living Room</a>
原始元素未经修饰:
<a href="#living-room">Living Room</a>
我可以/应该怎么做才能使jQuery选项卡正常工作?
http://codepen.io/anon/pen/BzxbqY
你包含jquery ui css了吗?
我去掉了你所有的脚本并使用
$(document).ready(function(){
$("#tabs").tabs();
});
我包含了jquery,然后是jquery ui这个
jquery ui css文件。
这里有一个工作版本(基于您的代码):
https://jsfiddle.net/g3o7chw1/1/
我认为问题可能是ui主题css。当我使用常规主题cdn时,它似乎工作得很好:https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css
我认为这是因为您的脚本CDN src链接没有http协议。代替:
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
你应该有:
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
看起来有两个问题。首先,如果粘贴的代码是准确的,则在调用ready()
方法时出现问题:
;(jQuery.ready(function()
{
jQuery('#tabs').tabs();
}()));
正如你所说,这不会产生任何错误。然而,它也没有任何作用!清除多余的parens和分号,您的代码看起来像这样:
jQuery.ready(function()
{
jQuery('#tabs').tabs();
});
现在,这里的问题是,在调用tabs()
方法之前,你没有说明需要准备什么,因为你没有指定要应用ready()
方法的选择器。这意味着你的tabs()
方法永远不会被调用。
对于ready()
方法,选择器应始终为document
。因此,如果您将代码更改为:
jQuery(document).ready(function(){
{
jQuery('#tabs').tabs();
});
你会发现你的tabs()
函数被调用了。你会注意到JD E和John Detlefs用$
代替了jQuery
,这是一种常见的(事实上几乎无处不在的)缩写,但除此之外,他们也有这种缩写。这是调用CCD_ 11的常规方式。(这里有两个等价的语法(你的语法不是其中之一),你可以在这里阅读。)
您的第二个问题似乎是兼容性问题:您的目录结构表明您使用的是jquery-ui.jsv.1.11.4和jquery-ui.css v.1.12.0。如果是这样的话,你肯定会遇到问题,因为1.12.0实现了很多突破性的更改。看一下这份文件。在选项卡下的部分,你会发现:
选项卡小部件现在向每个选项卡元素添加ui选项卡选项卡类,而不是名称不一致的ui选项卡。
如果您的目录结构实际上建议使用不同版本的.js和.css文件,那么您可能会使用应用ui-tab
类的.js文件,以及查找具有ui-tabs-tab
的类的.css文件。所以你不会得到样式,除非他们向后兼容。在某些情况下他们没有。(更新:从JD E在回答中提供的链接来看,我没有看到任何关于这一变化的证据。有几处引用了ui-tab
,而没有一处引用ui-tabs-tab
。由于1.12.0在三周前才发布,也许这是一个有记录的变化,从未真正发生过,他们还没有时间取消文档。但如果我是你,我仍然会保持我的版本一致。)
我建议您确保jquery-ui.js和jquery-ui.css文件的版本相同。如果你不需要支持IE,我建议你使用1.12.0。如果你这样做了,那么你需要研究jQuery UI的哪些版本支持哪些版本的IE。(1.12.0放弃了对IE 10及更早版本的支持。)此外,你的jQuery.js版本目前已有三年历史,你可能会考虑升级。最新版本是3.1.0(最近发布),2.2.4已经存在了一段时间。
- 如何动态插入jquery代码
- 换行符插入jquery选择器
- 将方法插入jQuery插件
- 在另一个脚本后插入Jquery
- 我应该如何在提交操作之前插入jQuery代码
- 创建 var 并将其插入 jQuery Child Selector(“父>子”)
- 如何在页脚中插入 jQuery 时定义变量
- 阻止第三方JavaScript插入jQuery
- 如何将HTML文本插入jQuery
- 如何将PHP插入jQuery
- 通过PHP在MySQL中插入Jquery
- 如何在PHP代码中插入jQuery插件?
- 在DOM中插入jQuery验证代码
- 使用userscript在header中插入jQuery和jQuery UI
- 在对象id:中插入jquery字符串
- 在表模板中插入jQuery输入
- Jquery插入Jquery属性
- 在带有事件的另一个浏览器选项卡中插入jQuery对象
- 如何在php数组中插入jquery值
- 难以将变量插入jquery属性标识