JavaScript事件

jQuery鼠标事件

  1. click() 鼠标单击事件 // js onclick
    click单击事件
    $(".box").click(function () {
    alert(“这是一个click单击事件被触发了”)
    });

  2. dblclick() 鼠标双击事件 // js ondblclick
    dblclick鼠标双击事件
    $(".box").dblclick(function () {
    (“这是一个dblclick鼠标双击事件被触发了”)
    });

  3. mousedown() 当鼠标指针移动到元素上方,并按下鼠标按键时,会发生mousedown事件
    mousedown 鼠标移动到某个元素上被按下的时候触发的事件
    $(".box").mousedown(function () {
    alert(“这是一个mousedown鼠标被按下的时候触发”);
    });

  4. mouseup() 当在元素上放松鼠标按钮时,会发生 mouseup 事件。
    mouseup当在元素上放松鼠标按钮时
    $(".box").mouseup(function () {
    alert(“这是一个mouseup当在元素上放松鼠标按钮时触发的事件”);
    });

  5. mouseenter() 当鼠标指针穿过元素时,会发生mouseenter事件。该事件大多数时候会与mouseleave 事件一起使用。
    mouseenter事件
    $(".box").mouseenter(function () {
    console.log(“mouseenter”);
    });

  6. mouseleave() 当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用
    mouseleave事件
    $(".box").mouseleave(function () {
    console.log(“mouseleave”);
    });

7.mouseover() 当鼠标指针位于元素上方时,会发生 mouseover 事件。该事件大多数时候会与 mouseout 事件一起使用
mouseover事件
$(".box").mouseover(function () {
console.log(“mouseover”);
});
8.mouseout() 当鼠标指针从元素上移开时,发生 mouseout 事件。该事件大多数时候会与 mouseover 事件一起使用
mouseout
$(".box").mouseout(function () {
console.log(“mouseout”);
});
9. mousemove() 当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。
mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标
注意!!!
mouseover与mouseenter的区别:
mouseover如果鼠标指针穿过选定元素的任何子元素,都会触发mouseover事件,
mouseenter如果鼠标指针穿过选定元素的任何子元素不会触发mouseenter事件
mouseout与mouseleave的区别:
mouseout不论鼠标指针离开被选元素还是任何子元素,都会触发mouseout事件。
mouseleave只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件
简而言之:就是移动到选定元素的子元素上面是否触发事件
mouseover 子元素 触发
mouseenter 子元素 不触发
mouseout 子元素 触发
mouseleave 子元素 不触发

jQuery表单事件

  1. focus() 事件
    当元素获得焦点时,触发focus事件。可以通过鼠标点击或者键盘上的TAB导航触发。这将触发所有绑定的focus函数
    例如:$(".wrap input").focus(function () {
    console.log(“input已经获取到了焦点”);
    });

  2. blur() 事件
    当元素失去焦点时触发 blur 事件。
    这个函数会调用执行绑定到blur事件的所有函数,包括浏览器的默认行为。可以通过返回false来防止触发浏览器的默认行为。blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也可以是按tab键离开的
    例如:$(".wrap input").blur(function () {
    console.log(“input已经失去了焦点”);
    });

  3. focusin() 事件
    当元素获得焦点时,触发 focusin 事件。
    focusin事件跟focus事件区别在于,他可以在父元素上检测子元素获取焦点的情况。
    例如:$(".wrap").focusin(function () {
    $(this).addClass(“bgPink”);
    });

  4. focusout() 事件
    当元素失去焦点时触发 focusout 事件。
    focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况
    例如:$(".wrap").focusout(function () {
    $(this).removeClass(“bgPink”);
    });

5.事件对象:Query事件对象的属性和方法
事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别
event.type:获取事件的类型
触发元素的事件类型
( " a " ) . c l i c k ( f u n c t i o n ( e v e n t ) a l e r t ( e v e n t . t y p e ) ; / / " c l i c k " 事 件 ) ; e v e n t . p a g e X 和 e v e n t . p a g e Y : 获 取 鼠 标 当 前 相 对 于 页 面 的 坐 标 通 过 这 2 个 属 性 , 可 以 确 定 元 素 在 当 前 页 面 的 坐 标 值 , 鼠 标 相 对 于 文 档 的 左 边 缘 的 位 置 ( 左 边 ) 与 ( 顶 边 ) 的 距 离 , 简 单 来 说 是 从 页 面 左 上 角 开 始 , 即 是 以 页 面 为 参 考 点 , 不 随 滑 动 条 移 动 而 变 化 e v e n t . p r e v e n t D e f a u l t ( ) 方 法 : 阻 止 默 认 行 为 这 个 用 的 特 别 多 , 在 执 行 这 个 方 法 后 , 如 果 点 击 一 个 链 接 ( a 标 签 ) , 浏 览 器 不 会 跳 转 到 新 的 U R L 去 了 。 我 们 可 以 用 e v e n t . i s D e f a u l t P r e v e n t e d ( ) 来 确 定 这 个 方 法 是 否 ( 在 那 个 事 件 对 象 上 ) 被 调 用 过 了 e v e n t . s t o p P r o p a g a t i o n ( ) 方 法 : 阻 止 事 件 冒 泡 事 件 是 可 以 冒 泡 的 , 为 防 止 事 件 冒 泡 到 D O M 树 上 , 也 就 是 不 触 发 的 任 何 前 辈 元 素 上 的 事 件 处 理 函 数 e v e n t . w h i c h : 获 取 在 鼠 标 单 击 时 , 单 击 的 是 鼠 标 的 哪 个 键 e v e n t . w h i c h 将 e v e n t . k e y C o d e 和 e v e n t . c h a r C o d e 标 准 化 了 。 e v e n t . w h i c h 也 将 正 常 化 的 按 钮 按 下 ( m o u s e d o w n 和 m o u s e u p e v e n t s ) , 左 键 报 告 1 , 中 间 键 报 告 2 , 右 键 报 告 3 e v e n t . c u r r e n t T a r g e t : 在 事 件 冒 泡 过 程 中 的 当 前 D O M 元 素 冒 泡 前 的 当 前 触 发 事 件 的 D O M 对 象 , 等 同 于 t h i s . t h i s 和 e v e n t . t a r g e t 的 区 别 : j s 中 事 件 是 会 冒 泡 的 , 所 以 t h i s 是 可 以 变 化 的 , 但 e v e n t . t a r g e t 不 会 变 化 , 它 永 远 是 直 接 接 受 事 件 的 目 标 D O M 元 素 ; . t h i s 和 e v e n t . t a r g e t 都 是 d o m 对 象 如 果 要 使 用 j q u e y 中 的 方 法 可 以 将 他 们 转 换 为 j q u e r y 对 象 。 比 如 t h i s 和 ("a").click(function(event) { alert(event.type); // "click"事件 }); event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与 (顶边)的距离,简单来说是从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化 event.preventDefault() 方法:阻止默认行为 这个用的特别多,在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的 URL 去了。我们可以用 event.isDefaultPrevented() 来确定这个方法是否(在那个事件对象上)被调用过了 event.stopPropagation() 方法:阻止事件冒泡 事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数 event.which:获取在鼠标单击时,单击的是鼠标的哪个键 event.which 将 event.keyCode 和 event.charCode 标准化了。event.which也将正常化的按钮按下(mousedown 和 mouseupevents),左键报告1,中间键报告2,右键报告3 event.currentTarget : 在事件冒泡过程中的当前DOM元素 冒泡前的当前触发事件的DOM对象, 等同于this. this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素; .this和event.target都是dom对象 如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和 ("a").click(function(event)alert(event.type);//"click");event.pageXevent.pageY2,,event.preventDefault()aURLevent.isDefaultPrevented()()event.stopPropagation()DOMevent.whichevent.whichevent.keyCodeevent.charCodeevent.which(mousedownmouseupevents)123event.currentTarget:DOMDOM,this.thisevent.targetjsthisevent.targetDOM.thisevent.targetdom使jqueyjquerythis(this)的使用、event.target和$(event.target)的使用;
jQuery键盘事件
鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为。
相对应的键盘也有这类事件,将用户行为分解成2个动作,键盘按下与松手,针对这样的2种动作,
jQuery分别提供了对应keydown与keyup方法来监听

        - keydown()事件
            当键盘或按钮被按下时,发生keydown事件。
        - keyup()事件
            当按钮被松开时,发生keyup事件。它发生在当前获得焦点的元素上。

例如:
$(".target2").keyup(function (e) {
$(“em:last”).text(e.target.value);
});

2jQuery键盘事件 keypress()事件
在input元素上绑定keydown事件会发现一个问题:
注意:每次获取的内容都是之前输入的,当前输入的获取不到

       keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,
       得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,
       获得的是触发键盘事件后的文本

       当浏览器捕获键盘输入时,还提供了一个keypress的响应,这个跟keydown是非常相似

       keypress事件与keydown和keyup的主要区别
            只能捕获单个字符,不能捕获组合键
            无法响应系统功能键(如delete,backspace)
            不区分小键盘和主键盘的数字字符
            总而言之,

        KeyPress主要用来接收字母、数字等ANSI字符,
        而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键。
        诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值