基础事件(一)

   JavaScript有一个非常重要的功能,就是事件驱动。当页面完全加载后,用户通过鼠标或键盘触发页面中绑定事件的元素即可触发。jQuery为开发者更有效率的编写事件行为, 封装了大量有益的事件方法供我们使用。

   绑定事件

   在JavaScript课程的学习中,我们掌握了很多使用的事件,常用的事件有:click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、change、 select、submit、keydown、keypress、keyup、blur、focus、load、resize、scroll、error。那么,还有更多的事件可以参考手册中的事件部分。

   jQuery通过.bind()方法来为元素绑定这些事件。可以传递三个参数:bind(type, [data], fn),type表示一个或多个类型的事件名字符串;[data]是可选的,作为event.data 属性值传递一个额外的数据,这个数据是一个字符串、一个数字、一个数组或一个对象;fn表示绑定到指定元素的处理函数。

   有html代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>基础事件</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <input type="button" value="按钮" />
    <div></div>
</body>
</html>

   使用点击事件:

$("input").bind("click", function() { //点击按钮后执行匿名函数
    alert("弹窗!");
});

   普通处理函数:

$("input").bind("click", fn); //执行普通函数式无须圆括号
function fn() {
    alert("处理函数!");
}

   可以同时绑定多个函数:

$("input").bind("click mouseover", function() { //点击和鼠标移入按钮分别执行一次
    alert("弹窗!");
});
$("input").bind("mouseover mouseout", function() { //鼠标移入和移出按钮分别执行一次
    $("div").html(function(index, value) {
        return value + "1";
    });
});

   通过对象键值对绑定多个参数:

$("input").bind({
    "mouseover":function() { //事件名的引号可以省略
        alert("移入");
    },
    "mouseout":function() {
        alert("移出");
    }
});

   事件名的引号可以省略,即:

$("input").bind({ //传递一个对象
    mouseover:function() { 
        alert("移入");
    },
    mouseout:function() {
        alert("移出");
    }
});

   对于以下jQuery代码:

$("input").bind("click mouseover", function() {
    alert("弹窗!");
});

   使用unbind删除绑定的事件:

$("input").unbind(); //删除全部事件

   使用unbind参数删除指定类型事件:

$("input").unbind("click"); //只删除点击事件

   又对于以下jQuery代码:

$("input").bind("click", fn1);
$("input").bind("click", fn2);
function fn1() {
    alert("fn1");
}
function fn2() {
    alert("fn2");
}

   使用unbind参数删除指定处理函数的事件:

$("input").unbind("click", fn2); //删除了click事件绑定了fn2的

 

   简写事件(一)

   为了使开发者更加方便的绑定事件,jQuery封装了常用的事件以便节约更多的代码,我们称它为简写事件。

   简写事件绑定方法

方法名触发事件描述
click(fn)鼠标触发每一个匹配元素的click(单击)事件
dbclick(fn)鼠标触发每一个匹配元素的dbclick(双击)事件
mousedown(fn)鼠标触发每一个匹配元素的mousedown(点击后)事件
mouseup(fn)鼠标触发每一个匹配元素的mouseup(点击弹起)事件
mouseover(fn)鼠标触发每一个匹配元素的mouseover(鼠标移入)事件
mouseout(fn)鼠标触发每一个匹配元素的mouseout(鼠标移出)事件
mousemove(fn)鼠标触发每一个匹配元素的mousemove(鼠标移动)事件
mouseenter(fn)鼠标触发每一个匹配元素的mouseenter(鼠标穿过)事件
mouseleave(fn)鼠标触发每一个匹配元素的mouseleave(鼠标穿出)事件
keydown(fn)键盘触发每一个匹配元素的keydown(键盘按下)事件
keyup(fn)键盘触发每一个匹配元素的keyup(键盘按下弹起)事件
keypress(fn)键盘触发每一个匹配元素的keypress(键盘按下)事件
unload(fn)文档当卸载本页面时绑定一个要执行的函数
resize(fn)文档触发每一个匹配元素的resize(文档改变大小)事件
scroll(fn)文档触发每一个匹配元素的scroll(滚动条拖动)事件
focus(fn)表单触发每一个匹配元素的focus(焦点激活)事件
blur(fn)表单触发每一个匹配元素的blur(焦点丢失)事件
focusin(fn)表单触发每一个匹配元素的focusin(焦点激活)事件
focusout(fn)表单触发每一个匹配元素的focusout(焦点丢失)事件
select(fn)表单触发每一个匹配元素的select(文本选定)事件
change(fn)表单触发每一个匹配元素的change(值改变)事件
submit(fn)表单触发每一个匹配元素的submit(表单提交)事件

   html代码不变,jQuery代码如下:

$("input").click(function() {
    alert("单击!");
});
$("input").dblclick(function() {
    alert("双击!");
});
$("input").mousedown(function() {
    alert("鼠标左键按下!");
});
$("input").mouseup(function() {
    alert("鼠标左键按下弹起!");
});
$(window).unload(function() { //一般unload卸载页面,新版浏览器应该是不支持的,火狐要设置一个权限(?)
    alert("1"); //一般用于清理工作
});
$(window).resize(function() { 
    alert("文档改变了"); 
});

   html代码若为:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>基础事件</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <input type="button" value="按钮" />
    <div></div>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
    <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
</body>
</html>

   现在,再测试scroll事件:

$(window).scroll(function() { 
    alert("滚动条改变了"); 
});

   若html(部分)代码若为:

<input type="text" value="按钮" />

   现在,再测试select事件:

$("input").select(function() { 
    alert("文本选定!"); 
});

   再来测试change事件:

$("input").change(function() { 
    alert("文本改变!"); 
});

   若html代码为:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>基础事件</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <form>
        <input type="submit" value="按钮" />
    </form>
</body>
</html>

   测试submit事件:

$("form").submit(function() { 
    alert("表单提交!"); 
});

 

转载于:https://www.cnblogs.com/yerenyuan/p/5425845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值