源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jQuery事件用法详解

  • 时间:2020-10-20 00:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jQuery事件用法详解
JavaScript在浏览器中以单线程模式运行,页面加载后,一旦页面上所有的JavaScript代码被执行完后,就只能依赖触发事件来执行JavaScript代码。 我们可以用jQuery这样绑定一个click事件:
/* HTML:
 *
 * <a id="test-link" href="#0">点我试试</a>
 *
 */

// 获取超链接的jQuery对象:
var a = $('#test-link');
a.on('click', function () {
  alert('Hello!');
});

on方法用来绑定一个事件,我们需要传入事件名称和对应的处理函数。 另一种更简化的写法是直接调用click()方法:
a.click(function () {
  alert('Hello!');
});
[b]jQuery能够绑定的事件 [/b] [b]鼠标事件 [/b] click: 鼠标单击时触发; dblclick:鼠标双击时触发; mouseenter:鼠标进入时触发; mouseleave:鼠标移出时触发; mousemove:鼠标在DOM内部移动时触发; hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。 [b]键盘事件 [/b]键盘事件仅作用在当前焦点的DOM上,通常是<input>和<textarea> keydown:键盘按下时触发; keyup:键盘松开时触发; keypress:按一次键后触发 其他事件 ready仅作用于document对象。由于ready事件在DOM完成初始化后触发,且只触发一次,所以非常适合用来写其他的初始化代码。 focus:当DOM获得焦点时触发; blur:当DOM失去焦点时触发; change:当<input>、<select>或<textarea>的内容改变时触发; submit:当<form>提交时触发; ready:当页面被载入并且DOM树完成初始化后触发 下面的代码没有预期的效果:
<html>
<head>
  <script>
    // 代码有误:
    $('#testForm).on('submit', function () {
      alert('submit!');
    });
  </script>
</head>
<body>
  <form id="testForm">
    ...
  </form>
</body>
因为JavaScript在此执行的时候,<form>尚未载入浏览器,所以$('#testForm)返回[],并没有绑定事件到任何DOM上 正确版本:
  <script>
    $(document).on('ready', function () {
      $('#testForm).on('submit', function () {
        alert('submit!');
      });
    });
  </script>
ready事件使用非常普遍,也这样简化:
$(document).ready(function () {
  $('#testForm).submit(function () {
    alert('submit!');
  });
});
甚至还可以再简化为(最为常见):
$(function () {
  // init...
});
可以反复绑定事件处理函数,它们会依次执行:
$(function () {
  console.log('init A...');
});
$(function () {
  console.log('init B...');
});
$(function () {
  console.log('init C...');
});
[b]事件参数[/b] 有些事件,如mousemove和keypress,我们需要获取鼠标位置和按键的值,否则监听这些事件就没什么意义了。所有事件都会传入Event对象作为参数(下边e就是一个event对象),可以从Event对象上获取到更多的信息:
$(function () {
  $('#testMouseMoveDiv').mousemove(function (e) {
    $('#testMouseMoveSpan').text('pageX = ' + e.pageX + ', pageY = ' + e.pageY);
  });
});
[b]取消绑定 [/b] 一个已被绑定的事件可以解除绑定,通过off('click', function)实现:
function hello() {
  alert('hello!');
}

a.click(hello); // 绑定事件

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

可以使用off('click')一次性移除已绑定的click事件的所有处理函数 无参数调用off()一次性移除已绑定的所有类型的事件处理函数 [b]事件触发条件 [/b] 事件的触发总是由用户操作引发的。例如,我们监控文本框的内容改动,当用户在文本框中输入时,就会触发change事件。但是,如果用JavaScript代码去改动文本框的值,将不会触发change事件。 有些时候,我们希望用代码触发change事件,可以直接调用无参数的change()方法来触发该事件:
var input = $('#test-input');
input.val('change it!');
input.change(); // 触发change事件
input.change()相当于input.trigger('change'),它是trigger()方法的简写。 [b]浏览器安全限制 [/b]在浏览器中,有些JavaScript代码只有在用户触发下才能执行,例如,window.open()函数。 以上就是本文的全部内容,希望对大家有所帮助,希望大家继续关注编程素材网的最新内容。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部