当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 荐 jQuery事件处理

荐 jQuery事件处理

2020年07月14日  | 移动技术网IT编程  | 我要评论

目录

1 事件处理

2 常见事件

3 on()方法绑定事件

4 off()解除事件绑定

5 JQuery的事件对象

6 JQuery触发事件

7 步骤1:创建待办事项清单列表

 8 步骤2:创建待办事项清单列表

 9 步骤3:创建待办事项清单列表


1 事件处理

jQuery提供了一种处理事件的有效方式。 当用户执行操作(例如单击元素,移动鼠标或提交表单)时,会发生事件。

当目标元素发生事件时,执行处理函数。

例如,假设我们要处理id="demo"的元素上的点击事件,并在点击按钮时显示当前日期。 使用纯JavaScript,代码如下:

var x = document.getElementById("demo");
x.onclick = function () {
  document.body.innerHTML = Date();
}

可以使用jQuery与以下代码来处理相同的事件:

$("#demo").click(function() {
  $("body").html(Date());
});

如你所见,jQuery代码更简单,更容易阅读和写入。

请注意,提供的事件名称没有“on”前缀(即在jQuery中单击对应JavaScript中的onclick)。

2 常见事件

鼠标事件:

click:单击时发生。

dblclick:双击元素时触发。

mouseenter:当鼠标指针进入所选元素时触发。

mouseleave:鼠标指针离开所选元素时触发。

mouseover:当鼠标指针在所选元素上方悬停时触发。

键盘事件:

keydown:当按下键盘按键时会触发。

keyup:当键盘按键被释放时会触发。

表单事件:

submit:提交表单时触发。

change:当表单元素的值发生改变时触发。

focus:当表单元素获得焦点时触发。

blur:当表单元素失去焦点时触发。

文件事件:

ready:当DOM加载完成以后触发。

resize:当浏览器窗口大小改变时触发。

scroll:当用户在指定的元素中滚动滚动条时触发。

例如,当用户在输入时,我们要更改div的内容。要做到这一点,我们需要处理键盘事件,当按下键盘上的任意一个按键时会触发:

HTML:

<input type="text" id="name" />
<div id="msg"></div>

JS:

$("#name").keydown(function() {
  $("#msg").html($("#name").val());
});

上面的代码处理 id="name"的元素的keydown事件,并将id="name"获取到的值赋给 id ="msg"的元素中。

3 on()方法绑定事件

在jQuery中处理事件的另一种方法是使用on()方法。

on()方法用于将事件附加到所选元素。 例如:

$("p").on("click", function() {

  alert("触发了p段落的点击事件");

});

你可以看到,事件名称作为第一个参数传递给on()方法。 第二个参数是处理函数。

on()方法用于将相同的处理函数绑定到多个事件中的时候很有用。 你可以使用空格分隔多个事件名称, 例如 你可以为点击和dblclick事件使用相同的事件处理程序。

$("p").on( "click dblclick", function() {
  alert("clicked");
});

4 off()解除事件绑定

你可以使用off()方法来删除事件处理程序。

例如:

$("div").on("click", function() { 
  alert('Hi there!'); 
}); 
$("div").off("click");

off()方法的参数是要删除的事件名称。

5 JQuery的事件对象

每个事件处理函数都可以接收一个事件对象,其中包含与该事件相关的属性和方法:

pageXpageY 事件发生时相对于页面左上角的鼠标位置(X和Y坐标)。

type 键入事件的类型(例如“点击”)。

which 哪个按钮或键被按下。

data 数据绑定事件时传入的任何数据。

target 定位发起事件的DOM元素。

preventDefault() 阻止事件的默认动作(例如,在链接之后)。

stopPropagation() 停止冒泡到其他元素的事件。

例如,让我们处理<a>元素上的click事件,并阻止打开href属性中提供的链接:

HTML

<a href="https://www.w3cschool.cn">点击我</a>

JS: 

$("a").click(function(event) {
  alert(event.pageX);
  event.preventDefault();
});

上面的代码在点击时提醒鼠标位置,并阻止打开链接。

如你所见,事件对象作为参数(就是以上代码中的 event 参数)传递给事件处理函数。

6 JQuery触发事件

我们还可以使用trigger()方法以编程方式触发事件。 例如,你可以触发一个点击事件,而不需要用户实际点击一个元素:

$("div").click(function() {
   alert("点击了div!");
});
$("div").trigger("click");

此代码触发所选元素的点击事件。

trigger()方法不能用来模仿本机浏览器事件,比如点击一个文件文本框。 只能处理jQuery事件系统中的事

7 步骤1:创建待办事项清单列表

让我们用我们所学的概念来创建一个To-Do列表项目。

“待办事项”列表可以将新项目添加到列表中,也可以删除现有项目。

首先,我们创建HTML:

<h1>我的To-Do列表</h1>
<input type="text" placeholder="新项目" />
<button id="add">添加</button>
<ol id="mylist"></ol>

点击按钮应该将输入字段的值添加到我们的<ol>列表中

 8 步骤2:创建待办事项清单列表

现在,准备HTML,我们可以开始编写我们的jQuery代码。

首先,我们处理按钮的点击事件:

$(function() {
  $("#add").on("click", function(event) {
    //这边写代码
  });
});

 

在事件处理程序中,我们选择输入字段的值并创建一个新的<li>元素,并将其添加到列表中:

var val = $("input").val();
if(val !== '') {
  var elem = $("<li></li>").text(val);
  $(elem).append("<button class='rem'>X</button>");
  $("#mylist").append(elem);
  $("input").val(""); //清除input的值
}

上面的代码将输入字段的值分配给val变量。 if语句检查该值是否为空,然后创建一个新的<li>元素。 添加一个删除它的按钮,之后将新创建的元素添加到<ol id ="mylist">列表中。

以下是完整的代码:

$(function() {
  $("#add").on("click", function(event) {
    var val = $("input").val();
    if(val !== '') {
      var elem = $("<li></li>").text(val);
      $(elem).append("<button class='rem'>X</button>");
      $("#mylist").append(elem);
      $("input").val("");
    }
  });
});

删除功能还没有实现。 我们将在下一节中处理它!

 9 步骤3:创建待办事项清单列表

剩下要做的就是处理class ="rem"按钮上的click事件,并从列表中删除相应的<li>元素。

$(".rem").on("click", function() {
  $(this).parent().remove();
});

请记住,这是当前的对象。 上面的代码移除了当前对象的父对象,在我们的例子中,它是remove按钮的父对象,<li>元素。

完整的代码:

$(function() {
  $("#add").on("click", function() {
    var val = $("input").val();
    if(val !== '') {
     var elem = $("<li></li>").text(val);
     $(elem).append("<button class='rem'>X</button>");
     $("#mylist").append(elem);
     $("input").val("");
     $(".rem").on("click", function() {
      $(this).parent().remove();
     });
    }
  });
});

“待办事项清单列表”仅仅是一个简短的演示,建立一个简单的项目说明如何处理事件。

 

本文地址:https://blog.csdn.net/ZGL_cyy/article/details/107302530

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网