JavaScript 学习笔记 - 14 工具包、框架和库

14.1 添加 jQuery

为了在网站中使用 JavaScript 框架,你需要对网站的页面代码作出一些修改。使用 jQuery 时,代码仅需少量修改。

<!DOCTYPE html>
<html>
<head>
<title>Welcome to jQuery!</title>
<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<script src="script01.js"></script>
</head>
<body>
<h1 id="welcome"> </h1>
</body>
</html>
$(document).ready(function() {
alert("Welcome to jQuery!");
});

在这里插入图片描述

 <script src="http://code.jquery.com/jquery-2.1.0.js"></script>

这句用于引入 jQuery 库的 HTML 代码。

$(document).ready(function() {
alert("Welcome to jQuery!");
});

上面这段代码和下面这段代码没啥区别:

window.addEventListener("load",
function(){
alert("Welcome to jQuery!");
},
false
);

$ ()在基于 jQuery 的 JavaScript 代码中,人们首先注意到的通常是美元符号 。 一 方 面 是 由 于 在 普 通 J a v a S c r i p t 代 码 中 。一方面是由于在普通JavaScript 代码中 JavaScript符号并不常见,另一方面则是因为$ 符号在 jQuery 中无处不在。大多数用到 jQuery 的代码行都会以$ 符号作为开始,这行代码也不例外。 $ 符号仅仅表示一个合法但不常见的函数名, jQuery 通过它来获取所需的一切。
document
因为我们无论做什么都需要通过$ ,那么,毫无疑问应该首先获取 document 对象(一般是最顶层的元素)。
ready()
以前,我们通过检查 onload 事件来判断页面是否完全加载,现在则依赖于 jQuery 的 ready()函数。二者唯一的区别在于 onload 是事件处理程序(所以必须赋给函数),而ready()是有一个参数的函数。

14.2 使用 jQuery 更新页面

当然,用 jQuery 也能做到。虽然接下来的示例与前面的示例类似,但我们将会更新页面本身,而不是仅弹出警告框,

$(document).ready(function() {
$("#welcome").append("Welcome to jQuery!");
});
$("#welcome").append("Welcome to jQuery!");

类似于获取 document 对象,使用$ 从页面上获取元素。现在获取到了#welcome 元素。然后,我们使用 jQuery 的 append()函数来设置元素的 innerHTML 属性

14.3 使用 jQuery 交互

<!DOCTYPE html>
<html>
<head>
<title>Welcome to jQuery #3!</title>
<link rel="stylesheet" href="script03.css">
<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<script src="script03.js"></script>
</head>
<body>
<h1 id="colorMe">Pick a color</h1>
<p>
<a id="red">Red</a>
<a id="green">Green</a>
<a id="blue">Blue</a>
</p>
</body>
</html>
a {
display: block;
float: left;
padding: 10px;
margin: 10px;
font-weight: bold;
color: white;
background-color: gray;
}
a:hover {
color: black;
background-color: silver;
}
$(document).ready(function() {
$("a").click(function(evt) {
$("#colorMe").css({
"color": $(this).attr("id")
});
evt.preventDefault();
});
});
  1. $(“a”).click(function(evt) {
    此行使用了 jQuery 来实现交互行为,即当用户单击文档上任意链接(即锚点元素)时,会执行相应的操作。
  2. $(“#colorMe”).css({
    如你所愿,获取页面上 id 值为 colorMe 的元素。由于我们想改变的属性是 CSS 相关的,因而可以使用 css()函数。它需要一个对象字面量列表:包含在花括号( {})中的一串名值对,不同的名值对用逗号分隔,名值对的名称和值之间用冒号分隔。
  3. “color”: $(this).attr(“id”)
    $(this)元素类似于常见的 this 元素,它的值取决于其所处的上下文环境。此时的上下文环境是click 事件处理程序,因此,我们能够获得用户刚刚单击过的那个链接。我们真正想要获取的是元素的 id 值,即 red、 green 或 blue。将值作为参数传给在第 3 步中仅设置了一个参数(属性名)的 attr()函数。随后,值会被存储为标题的 class 属性的新值, CSS 会接收新值,进而自动更新标题颜色。

14.4 交互与更新

a {
display: block;
float: left;
padding: 10px;
margin: 10px;
font-weight: bold;
color: white;
background-color: gray;
}
$(document).ready(function() {
$("a").hover(function() {
$(this).css({
"color": $(this).attr("id"),
"background-color": "silver"
});
});
$("a").mouseout(function() {
$(this).css({
"color": "white",
"background-color": "gray"
});
});
$("a").click(function(evt) {
$("#colorMe").css({
"color": $(this).attr("id")
});
evt.preventDefault();
});
});

14.5 条纹表格

如果你的网站有大量表格数据,就应该在表格中添加条纹——如果没有条纹,就很难阅读和理解这些信息。遗憾的是,还没有适用于所有常用浏览器的实现条纹表格行的 CSS 方法。在过去,使用JavaScript 实现条纹表格行非常困难,大多数人不愿意自找麻烦。

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
<title>Striped Tables</title>
<link rel="stylesheet" href="script05.css">
<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<script src="script05.js"></script>
</head>
<body>
<h1>Beatles Discography</h1>
<table>
<thead>
<tr>
<th>Album</th>
<th>Year</th>
<th>Label</th>
</tr>
</thead>
<tr>
<td>Please Please Me</td>
<td>1963</td>
<td>Parlophone</td>
</tr>
<tr>
<td>With The Beatles</td>
<td>1963</td>
<td>Parlophone</td>
</tr>
<tr>
<td>A Hard Day's Night</td>
<td>1964</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Beatles for Sale</td>
<td>1964</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Help!</td>
<td>1965</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Rubber Soul</td>
<td>1965</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Revolver</td>
<td>1966</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Sgt. Pepper's Lonely Hearts Club Band</td>
<td>1967</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Magical Mystery Tour</td>
<td>1967</td>
<td>Capitol</td>
</tr>
<tr>
<td>The Beatles</td>
<td>1968</td>
<td>Apple</td>
</tr>
<tr>
<td>Yellow Submarine</td>
<td>1969</td>
<td>Apple</td>
</tr>
<tr>
<td>Abbey Road</td>
<td>1969</td>
<td>Apple</td>
</tr>
<tr>
<td>Let It Be</td>
<td>1970</td>
<td>Apple</td>
</tr>
</table>
</body>
</html>
table {
border-collapse: collapse;
}
tr.even {
background-color: #C2C8D4;
}
tr.over {
background-color: #8797B7;
}
td {
border-bottom: 1px solid #C2C8D4;
padding: 5px;
}
th {
border-right: 2px solid #FFF;
color: #FFF;
padding-right: 40px;
padding-left: 20px;
background-color: #626975;
}
th.sortUp {
background: #626975 url(jquery/images/asc.png) no-repeat right center;
}
th.sortDown {
background: #626975 url(jquery/images/desc.png) no-repeat right center;
}
$(document).ready(function() {
$("tr").mouseover(function() {
$(this).addClass("over");
});
$("tr").mouseout(function() {
$(this).removeClass("over");
});
$("tr:even").addClass("even");
});

14.6 表格排序

具有条纹效果的表格已经很不错了,但是有时候你希望站点支持用户交互。用户可能希望按照不同的次序对列进行排序——不是按照年份升序,而是按照降序排序。

<!DOCTYPE html>
<html>
<head>
<title>Sorted Tables</title>
<link rel="stylesheet" href="script05.css">
<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<script src="jquery/jquery.tablesorter.js"></script>
<script src="script06.js"></script>
</head>
<body>
<h1>Beatles Discography</h1>
<table id="theTable">
<thead>
<tr>
<th>Album</th>
<th>Year</th>
<th>Label</th>
</tr>
</thead>
<tr>
<td>Please Please Me</td>
<td>1963</td>
<td>Parlophone</td>
</tr>
<tr>
<td>With The Beatles</td>
<td>1963</td>
<td>Parlophone</td>
</tr>
<tr>
<td>A Hard Day's Night</td>
<td>1964</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Beatles for Sale</td>
<td>1964</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Help!</td>
<td>1965</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Rubber Soul</td>
<td>1965</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Revolver</td>
<td>1966</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Sgt. Pepper's Lonely Hearts Club Band</td>
<td>1967</td>
<td>Parlophone</td>
</tr>
<tr>
<td>Magical Mystery Tour</td>
<td>1967</td>
<td>Capitol</td>
</tr>
<tr>
<td>The Beatles</td>
<td>1968</td>
<td>Apple</td>
</tr>
<tr>
<td>Yellow Submarine</td>
<td>1969</td>
<td>Apple</td>
</tr>
<tr>
<td>Abbey Road</td>
<td>1969</td>
<td>Apple</td>
</tr>
<tr>
<td>Let It Be</td>
<td>1970</td>
<td>Apple</td>
</tr>
</table>
</body>
</html>
$(document).ready(function() {
$("tr").mouseover(function() {
$(this).addClass("over");
});
$("tr").mouseout(function() {
$(this).removeClass("over");
});
$("#theTable").tablesorter({
sortList:[[1,0]],
cssAsc: "sortUp",
cssDesc: "sortDown",
widgets: ["zebra"]
});
});
 sortList:[[1,0]],
cssAsc: "sortUp",
cssDesc: "sortDown",
widgets: ["zebra"]

这里使用 jQuery,所以有几个控制表格显示方式的选项。我们在这里使用的选项如下所示。 sortList:[[1,0]]:在最初加载页面时,我们希望表格以某种方式排序,就在这里定义这种排序方式。所需排序的列是第一个参数,列的编号从零开始。在这里,我们希望表格按照第二列排序,所以传递 1(请记住, JavaScript 的编号是从零开始的)。第二个参数是希望的排序方向: 0 是升序, 1 是降序。
在这里插入图片描述
 cssAsc: “sortUp”:当用户选择升序排序时,我们要对这个 th 单元格应用一个新的 CSS 规则。这个选项会在用户选择升序时自动分配"sortUp"类,因此会在标签的右边显示向上箭头。
 cssDesc: “sortDown”:如果用户希望采用降序排序,可以再次单击这个 th 单元格,这时类会改为"sortDown",因此在标签的右边显示向上箭头。因为希望能够按照任何列排序而不只是按照 Web 开发人员决定的列排序,所以用户只需单击另一个 th 单元格,结果会立即改变,不需要添加任何代码。
 widgets: [“zebra”]:在使用 tablesorter()时,斑马纹效果是一个“免费赠送的”部件。只需指出希望添加 zebra 部件,就能够产生条纹效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值