好记性不如烂笔头
find()可以在所有后代元素里查找,而children()只会查找子代元素(不包括第二层级)。
not() 从匹配元素集合中删除元素。从包含所有段落的集合中删除 id 为 "selected" 的段落:
代码语言:javascript复制$("p").not("#selected")
is() 方法用于查看选择的元素是否匹配选择器。
代码语言:javascript复制$(selector).is(selectorElement,function(index,element))
jq在css的基础上扩展了很多选择器,尝试使用你会有很多意外的惊喜。
jq中的很多操作都是异步的,代码的顺序不代表操作的执行顺序。要求严格的话,需要通过指定操作的时间来控制执行顺序。
jq使用群组选择器进行事件监听时,可在事件的回调函数内使用this代表群组选择器选中的元素中触发事件的元素。
淡出、淡入的效果相当于延时版的显示和隐藏。
jq动态生成html,不会绑定原有的事件,解决办法,动态添加事件:
代码语言:javascript复制 $("body").on("click","#customer li",function (event) {
//事件代码
});
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollTo
对于this 指向的对象,在通常的调用过程中一般指向调用时所在的对象,例如onclick属性触发的时候,this指向dom所在的window对象。
contentDocument ,返回 iframe 生成的 document 对象。contentWindow 返回 iframe 生成的 window 对象。
trigger() ,方法触发被选元素的指定事件类型。https://www.cnblogs.com/jiangxiaobo/p/5830200.html
学习了一下promise对象和async、await关键字,学无止境,加油!
jq.index(),获取指定jq对象在jq对象集合里的索引位置。
Mutation Observer API 用来监视 DOM 变动。DOM 的任何变动,比如节点的增减、属性的变 动、文本内容的变动,这个 API 都可以得到通知。
dom节点的on属性添加事件会覆盖之前添加的,addEvent则只是追加。
hover([over,]out),一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
js对象的方法被调用是this仍然指向的是调用时所在的对象,而不是对象自身。调用自身方法可使用对象的引用。
jq不支持事件捕获。需要使用捕获模式只能用js。通过addEventListen原生方法处理。冒泡是从内到外,捕获是从外到内触发事件。
onscroll是滚动条滚动,onwheel是鼠标滚轮的滚动事件。
post和get进行错误处理时可以使用error函数添加错误处理的回调;
zepto一个用法同JQ的js库。
JS 全屏Api:https://zhuanlan.zhihu.com/p/29177102
元素拖动事件:https://blog.csdn.net/qq_43915356/article/details/106222254
jq上传文件
代码语言:javascript复制{
// 不修改 Content-Type 属性,使用 FormData 默认的 Content-Type 值
contentType: false,
// 不对 FormData 中的数据进行 url 编码,而是将 FormData 数据原样发送到服务器
processData: false,
}
$.ajax({
type: "POST",
url: location.pathname "?act=uploadsTask",
data: index.data,
contentType: false,
cache: false,
processData: false,
datatype: "json",
beforeSend: function () {
$("#upload").text("上传..");
},
success: function (data) {
data = JSON.parse(data);
if (data.code != 1) {
layer.msg(data.msg, {time: 2000});
} else {
layer.close(index.pane);
$(".button").show();
$("#modal").hide();
layer.msg(data.msg, {time: 2000});
}
},
complete: function () {
$("#upload").text("开始上传");
$("input[type=file]").val("");
layer.close(indexs);
},
error: function () {
layer.msg("出错了!", {time: 2000});
}
});
jq js总结,基于传统使用思维
- 将同一大类的功能放在一个js文件里。
- 将文件内所有功能进行分类,封装在不同的对象里。
- 用jq把事件和封装的对象事件处理方法进行绑定。
- 最终可以避免事件处理和执行代码混乱,造成维护困难,代码阅读性极差。
- 这应该是一种编程组装的方法,基于此方法,结合模块化思想。完美
其实最终就是模块化,此处转向require.js