jQueryUI1.10.0新版本学习(widget-Tabs)

2023-10-09 23:08

本文主要是介绍jQueryUI1.10.0新版本学习(widget-Tabs),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本来打算学习jQueryUI的,然后去买了一本书,《jQueryUI开发指南》。结果那天一跑例子,各种跑不通。后来一看官网,原来从jQueryUI从1.10.0开始对之前很多控件的方法都进行了一定程度的调整,删除了大量原1.9.2以下的方法。所以,没办法,本人这就直接从官网上去学习新的jQuery1.10.0吧。

widget-Tabs(选项卡)

本小节学习选项卡Tabs的各种使用方法:

先放出HTML,供参考。

<!DOCTYPE html><html lang="zh_CN"><head><meta charset="utf-8"><title>jQueryUI学习</title><script type="text/javascript" src="jQueryUI/js/jquery-1.9.0.js"></script><script type="text/javascript" src="jQueryUI/js/jquery-ui-1.10.0.custom.js"></script><link rel="stylesheet" href="jQueryUI/css/smoothness/jquery-ui-1.10.0.custom.css" type="text/css" /><link rel="stylesheet" href="css/main.css" type="text/css"/><script src="js/main.js"></script></head><body><div id="tabs"><ul><li><a href="#tab1">标签一</a></li><li><a href="#tab2">标签二</a></li><li><a href="#tab3">标签三</a></li></ul><div id="tab1">标签1的内容</div><div id="tab2">标签2的内容</div><div id="tab3">标签3的内容</div></div></body>
</html>


1.默认功能

$(document).ready(function(){$("#tabs").tabs(); 
});

2.可折叠内容框

双击标签名称部分,可以折叠标签内容。

$(document).ready(function(){$("#tabs").tabs({collapsible: true}); 
});

3.鼠标滑过打开标签

$(document).ready(function(){$("#tabs").tabs({event: "mouseover"}); 
});

加入event。这样在鼠标滑过的时候,就可以触发打开标签了。

4.顺序可调节标签

使用sortable方法可以让选项卡的顺序通过鼠标拖动标签名调节。

$(document).ready(function(){var tabs = $("#tabs").tabs();tabs.find( ".ui-tabs-nav" ).sortable({axis: "x",stop: function() {tabs.tabs( "refresh" );}});
});

5.Ajax载入选项卡内容

选项卡的对应内容可以通过Ajax从服务器获取,当使用Ajax载入的时候,标签内容将为“Loading...”,当载入完毕以后,则会填充实际的内容。

注意,Ajax需要服务器支持。这里使用Tomcat7作为Ajax应用服务器。

$(document).ready(function(){$( "#tabs" ).tabs({beforeLoad: function( event, ui ) {ui.jqXHR.error(function() {ui.panel.html("内容无法载入……请稍后再试!");});}});
});
这里,新版本的jQuery使用了beforeLoad这个回调函数,而不是之前的那个什么AjaxObject,嗯。不过使用更加方便了。这里的ui直接封装了jqXHR对象,所以更加好处理了。


这里分别是2个HTML载入,和2个JSP动态生成载入。都差不多,需要注意的就是JSP一定要写上这

<%@ page contentType="text/html;charset=utf-8"%>
要不然会乱码。

这里修改了HTML文件为:

<div id='tabs'><ul><li><a href="#tab1">标签一</a></li><li><a href="ajax/content1.html">Ajax载入HTML文件1</a></li><li><a href="ajax/content2.html">Ajax载入HTML文件2</a></li><li><a href="ajax/shortContent.jsp">Ajax载入jsp短文件</a></li><li><a href="ajax/longContent.jsp">Ajax载入jsp长内容文件</a></li></ul><div id="tab1">Contents of first tab</div>
</div>

6.选项卡的简单操作

这里的选项卡的简单操作是指选项卡的添加、删除操作。

先说添加,代码如下:

$(document).ready(function(){var tabs = $( "#tabs" ).tabs();addTab();//在已有的选项卡后添加新的选项卡function addTab() {var label = "新加的标签",id = "tab4",li = $('<li><a href="#tab4">'+label+'</a></li>'),tabContentHtml = "新内容";tabs.find( ".ui-tabs-nav" ).append( li );tabs.append( "<div id='" + id + "'><p>" + tabContentHtml + "</p></div>" );tabs.tabs( "refresh" );}
});
从jQuery1.10开始,原来的那个add方法被官方干掉了。取而代之的是这refresh。这东西用起来略微坑爹,需要自己构建dom,不过还好jQuery操作dom不困难。如下图:


这里成功调用这个addTab方法加入了新的选项卡。

移除选项卡如下:

//移除tab2
$("li[id='removeme']").remove();
$("#tabs2").remove();tabs.tabs( "refresh" );


选项卡的添加删除方法在官网上还有更加复杂同时也更加好用的示例代码,那里用到了delegate给li后面的小x绑定点击事件,当触发事件的时候删除这个li和所对应的div。其实原理是一样的。


如图,这里删除掉了Tab2标签。

HTML改为:

<li id='removeme'><a href="#tab2">Tab2</a></li>

7.底部选项卡

通过一些CSS和JS的设定,可以使选项卡的标签出现在内容底部这种风格。


如图这种风格。要实现这种风格,首先要添加CSS的修正:

/* 固定高度,从而使标签栏不会随着内容高度的变化而跳动。 */
#tabs .tabs-spacer { float: left; height: 200px; }
.tabs-bottom .ui-tabs-nav { clear: left; padding: 0 .2em .2em .2em; }
.tabs-bottom .ui-tabs-nav li { top: auto; bottom: 0; margin: 0 .2em 1px 0; border-bottom: auto; border-top: 0; }
.tabs-bottom .ui-tabs-nav li.ui-tabs-active { margin-top: -1px; padding-top: 1px; }
然后将整个div部分的HTML改为

<div id='tabs' class="tabs-bottom"><ul><li><a href="#tab1">Tab1</a></li><li><a href="#tab2">Tab2</a></li><li><a href="#tab3">Tab3</a></li></ul><div class="tabs-spacer"></div><div id="tab1">Contents of first tab</div><div id="tab2">Contents of the second tab</div><div id="tab3">Contents of the third tab</div>
</div>
这里在整个div加入了class为tabs-bottom的风格

并且在ul标签下加入了一个空的div,使用tabs-spacer。

接下来就是js的编写:

$(document).ready(function(){var tabs = $( "#tabs" ).tabs();// 修改CSS$( ".tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *" ).removeClass( "ui-corner-all ui-corner-top" ).addClass( "ui-corner-bottom" );// 将导航标签移动到底部$( ".tabs-bottom .ui-tabs-nav" ).appendTo( ".tabs-bottom" );
});

这里首先修改所应用的css,然后通过appendTo将导航标签移动到底部。
8.侧边选项卡

选项卡风格还可以选择侧边标签风格的。如图:


这个相对于底部选项卡要简单一些,只需要加入适当的css并且在js上替换即可,同时,也不用修改HTML

css:

.ui-tabs-vertical { width: 55em; }
.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
js:

$(document).ready(function(){$( "#tabs" ).tabs().addClass( "ui-tabs-vertical ui-helper-clearfix" );$( "#tabs li" ).removeClass( "ui-corner-top" ).addClass( "ui-corner-left" );
});
HTML是最初始的那个,这里就不列出来了。


好了,以上基本就是jQueryUI对于选项卡tabs这个小组件的全部用法。更多的资料,大家可以参考jQueryUI官网,还有API。








这篇关于jQueryUI1.10.0新版本学习(widget-Tabs)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176211

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个