jQuery统一了不同浏览器之间的DOM操作的差异

1. jQuery === $ // true

1.1 $(x) //将x转换为jQuery对象,便于调用jQuery提供的API

1.2 方便操作DOM,支持链式写法,消除各浏览器差异性,一套代码即可

2. $(function () {...})的形式,是document对象的ready事件处理函数。

由于该事件在DOM初始化后发生,因此把所有其他的 jQuery 事件和函数置于该事件中是非常好的做法。

演变如下: 2.1 - 2.3 越来越简化

2.1

        $(document).on('ready', function () {
$('#testForm).on('submit', function () {
alert('submit!');
});
});

2.2

$(document).ready(function () {
// on('submit', function)也可以简化:
$('#testForm).submit(function () {
alert('submit!');
});
});

2.3

$(function () {
// init...
});

3. 事件参数

3.1 有些事件,如mousemove和keypress,我们需要获取鼠标位置和按键的值,否则监听这些事件就没什么意义了。所有事件都会传入Event对象作为参数,可以从Event对象上获取到更多的信息

3.2 https://github.com/janetat/Front-end-toys/tree/master/4. Coordinate-when-mouse-moves

$(function () {
$('#testMouseMoveDiv').mousemove(function (e) {
$('#testMouseMoveSpan').text('pageX = ' + e.pageX + ', pageY = ' + e.pageY);
});
});

4. 取消事件绑定

4.1 off('click')一次性移除已绑定的click事件的所有处理函数。

4.2 无参数调用off()一次性移除已绑定的所有类型的事件处理函数。

function hello() {
alert('hello!');
} a.click(hello); // 绑定事件 // 10秒钟后解除绑定:
setTimeout(function () {
a.off('click', hello);
}, 10000);

以下的代码无法达到预期,两个匿名function是两个不同的对象

// 绑定事件:
a.click(function () {
alert('hello!');
}); // 解除绑定:
a.off('click', function () {
alert('hello!');
});

5. 事件触发条件

5.1 事件的触发总是由用户操作引发的。例如,我们监控文本框的内容改动,当用户在文本框中输入时,就会触发change事件

var input = $('#test-input');
input.change(function () {
console.log('changed...');
});

5.2 果用JavaScript代码去改动文本框的值,将不会触发change事件:

var input = $('#test-input');
input.val('change it!'); // 无法触发change事件

5.3 有些时候,我们希望用手动触发change事件,可以直接调用无参数的change()方法来触发该事件:

input.change()相当于input.trigger('change'),它是trigger()方法的简写。

var input = $('#test-input');
input.val('change it!');
input.change(); // 触发change事件

5.4 由于浏览器的限制,有些敏感的代码只能手动触发

// 无法弹出新窗口,将被浏览器屏蔽:
$(function () {
window.open('/');
});
var button1 = $('#testPopupButton1');
var button2 = $('#testPopupButton2'); function popupTestWindow() {
window.open('/');
} button1.click(function () {
popupTestWindow();
}); button2.click(function () {
// 不立刻执行popupTestWindow(),100毫秒后执行:
setTimeout(popupTestWindow, 100);
});

JavaScript - jQuery注意点的更多相关文章

  1. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  2. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  3. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  4. javascript/jquery读取和修改HTTP headers

    javascript/jquery读取和修改HTTP headers jquery修改HTTP headers jQuery Ajax可以通过headers或beforeSend修改request的H ...

  5. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

  6. [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  7. 【推荐分享】大量JavaScript/jQuery电子书籍教程pdf合集下载

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  8. 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  9. Javascript Jquery 中的数组定义与操作_子木玲_新浪博客

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  10. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

随机推荐

  1. 1.2 Jmeter 使用代理录制脚本

    参考文档: http://jingyan.baidu.com/article/4e5b3e19333ff191911e2459.html 利用JMeter配置代理:1.添加线程组:  Test Pla ...

  2. 路飞-后台Django项目创建

    后台:Django项目创建 环境 """ 为luffy项目创建一个虚拟环境 >: mkvirtualenv luffy """ &qu ...

  3. IPSec无法建立?注意第一阶段hash sha !

    该篇注意记录一下,有些情况下,我们配置了IPSec ,但是就是无法建立,发现连第一阶段都无法建立起来. 1.检查配置无问题 2.开启debug crypto isakmp发现有IKE的重传 3.sho ...

  4. 消息队列(六)--- RocketMQ-消息消费

    文章部分图片来自参考资料,侵删 概述 我们从前面的发送流程知道某个主题的消息到了broker 的 messageque 里,假如让我们来设计一个消息队列的消费者过程,那么多个消费者应该如何消费数量较少 ...

  5. Atcoder Beginner Contest153F(模拟)

    应该也可以用线段树/树状数组区间更新怪兽的生命值来做 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespac ...

  6. tomcat6w.exe启动tomcat

    在使用tomcat中,我们可能经常点击startup.bat来启动tomcat,但也不少通过tomcat6w.exe来启动的. 但是当我们点击tomcat6w.exe的时候会报错,信息如下:提示 指定 ...

  7. IIS-7.5 第一次加载慢的 解决办法

    问题焦点 Win2008R2,Win7 下面IIS部署的.NET站点第一次加载比较慢. 解决办法: 1.基本原理: 在第一个请求到达之前加载Web应用程序,从而提高其网站的响应性.通过主动加载和初始化 ...

  8. Python - metaclass元类(图)

    个人总结

  9. UDP协议 sendto 和 recvfrom 浅析与示例

    UDP(user datagram protocol)用户数据报协议,属于传输层. UDP是面向非连接的协议,它不与对方建立连接,而是直接把数据报发给对方.UDP无需建立类如三次握手的连接,使得通信效 ...

  10. 【前端开发API】豆瓣开放API

    转载:https://www.cnblogs.com/HuangJie-sol/articles/10884622.html#_label6 阅读目录 前言 具体api 1.正在热映 2.即将上映 3 ...