Zepto.js 相关事件

预计阅读时间: 4 分钟

一、Zepto Event 事件函数

1、$.Event(type,[properties])

代码示例
1// 创建并初始化一个指定的DOM事件
2$.Event("mylib:change", {
3	bubbles: false
4});

2、$proxy(fn,context)

代码示例
1// 创建并初始化一个指定的DOM事件
2let obj = {
3		name: "Zepto"
4	},
5	handler = function () {
6		console.log("hello Zepto ", this.name);
7	};
8$(document).on("click", $.proxy(handler, obj));

:该方法接收一个函数,然后返回一个新函数,并且该新函数始终保持特定的上下文语境,新函数中的this指向context参数。

2、bind():绑定事件函数

代码示例
1$("#app").bind("click", function (e) {
2	alert("bind方法");
3});

3、delegate():绑定事件函数

代码示例
1$("#app").delegate("button", "click", function (e) {
2	alert("delegate方法,推荐使用on绑定事件!");
3});

4、off():移除通过 on 添加的事件

代码示例
1$("#app").off("click", [Element], function (e) {
2	alert("移除on绑定的事件!");
3});

5、on():添加一个处理事件到元素

代码示例
1var elem = $("#content");
2
3elem.on("click", function (e) {});
4
5elem.on("click", "nav a", function (e) {});
6
7$(document).on("click", "a", function (e) {});

6、one():添加一次点击事件

代码示例
1$("#btn").one("click", "a", function (e) {});

注:当第一次执行事件以后,该事件自动解除绑定,保证该处理函数在每个元素上最多执行一次。

7、trigger(event, [args]):在对象集合的元素上触发指定的事件

代码示例
1// input上的focus事件触发,input获取焦点
2$("input").trigger("focus");

8、triggerHandler(event, [args])

代码示例
1// input上的focus事件触发,但是input不会获取焦点
2$("input").triggerHandler("focus");

 9、unbind():移除通过 bind 注册的事件

代码示例
1// input上的focus事件触发,但是input不会获取焦点
2$("#app").unbind("click", function (e) {});

二、DOM 节点&方法

1、reduce():遍历当前对象集合

代码示例
1reduce(function (memo, index, array) {}, [initial]);

2、remove():从其父节点中删除当前集合中的元素

代码示例
1$("#app div").remove();

3、removeAttr(name):移除含有 name 的指定元素

代码示例
1$("#app div").removeAttr(".aaa");

4、removeClass([name]):移除元素 Class

代码示例
1$("#app div").removeClass("xc");

5、replaceWith():用给定的内容替换所有匹配的元素

代码示例
1$("#app").replaceWith("abcd");

6、scrollLeft():获取或设置页面上的滚动元素或者整个窗口向右滚动的像素值

代码示例
1$("#app").scrollLeft();

7、scrollTop():获取或设置页面上的滚动元素或者整个窗口向下滚动的像素值

代码示例
1$("#app").scrollTop();

8、show():恢复对象集合中每个元素默认的“display”值

代码示例
1$("#app").show();

9、siblings():获取对象集合中所有元素的兄弟节点

代码示例
1$("#app").siblings();

10、size():获取对象集合中元素的数量

代码示例
1$("ul li").size();

11、slice(start,[end]):用给定的内容替换所有匹配的元素

代码示例
1var a11 = [1, 2, 3, 4, 5, 6, 7, 8];
2var a_4 = a11.slice(4);
3console.log(a_4);

:提取这个数组array的子集,从start开始,如果给定end,提取从从start开始到end结束的元素,但是不包含end位置的元素。

12、text():获取或者设置所有对象集合中元素的文本内容

代码示例
1// 获取文本
2$("ul li").eq(0).text();
3
4// 设置文本
5$("ul li").eq(0).text("设置文本内容");

13、toggle():显示或隐藏匹配元素

代码示例
1$("#box").toggle(true); // true => show false=> hide

14、toggleClass():在匹配的元素集合中的每个元素上添加或删除一个或多个样式类

代码示例
1$("#box").toggleClass("bt");

15、unwrap():移除集合中每个元素的直接父节点,并把他们的子元素保留在原来的位置

代码示例
1$("ul li").unwrap();

16、val():获取或设置匹配元素的值

代码示例
1// 获取元素值
2$("input").val();
3
4// 设置元素值
5$("input").val("姓名");

17、wrap():在每个匹配的元素外层包上一个 html 元素

代码示例
1$("span").wrap("p");

18、wrapAll():在所有匹配元素外面包一个单独的结构

代码示例
1$("ul li").wrapAll("div");

19、wrapInner():将每个元素中的内容包裹在一个单独的结构中

代码示例
1$("ul li").wrapInner("div");

20、width():获取或者设置元素对象的宽度

代码示例
1// 获取id为app元素的宽度
2$("#app").width();
3
4// 为元素设置宽度
5$("#app").width(100);

三、Ajax 请求

1、$.ajax()

代码示例
1// GET请求
2$.ajax({
3	type: "GET",
4	url: "url",
5	data: {
6		name: "xxx"
7	},
8	dataType: "json",
9	timeout: 300,
10	context: $("body"),
11	success: function (data) {},
12	error: function (xhr, type) {}
13});
14
15// POST 请求:需要通过JSON.stringify()将参数转化为JSON字符串
16$.ajax({
17	type: "POST",
18	url: "url",
19	data: JSON.stringify({
20		name: "xxx"
21	}),
22	success: function (data) {},
23	error: function (xhr, type) {}
24});
注意事项:
  1. beforeSend(xhr, settings):请求发出前调用,它接收 xhr 对象和 settings 作为参数对象。如果它返回 false,请求将被取消。
  2. success(data, status, xhr):请求成功之后调用。传入返回后的数据,以及包含成功代码的字符串。
  3. error(xhr, errorType, error):请求出错时调用。 (超时,解析错误,或者状态码不在 HTTP 2xx)。
  4. complete(xhr, status):请求完成时调用,无论请求失败或成功。

2、$.get():Ajax GET 请求

代码示例
1$.get(
2	"url",
3	function (response) {
4		$(document.body).append(response);
5	},
6	[dataType]
7);

3、$.post():Ajax POST 请求

代码示例
1// POST请求简写方式
2$.post(
3	"/url",
4	{
5		sample: "xxx"
6	},
7	function (response) {
8		console.log(response);
9	}
10);
11
12// 参数可以为一个字符串
13$.post("url", $("#app").serialize(), function (response) {
14	console.log(response);
15});

4、$.getJSON()

代码示例
1$.getJSON("xxx.json", function (data) {
2	console.log(data);
3});
4
5// callback()回调函数
6$.getJSON("xxx.json?callback=?", function (remoteData) {
7	console.log(remoteData);
8});
目 录