jQuery 事件总结

 

jQuery 事件 - click() 方法

定义和用法

当点击元素时,会发生 click 事件。

当鼠标指针停留在元素上方,然后按下并松开鼠标左键时,就会发生一次 click。

click() 方法触发 click 事件,或规定当发生 click 事件时运行的函数。

实例

当点击按钮时,隐藏或显示元素:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("p").slideToggle();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<button>切换</button>
</body>
</html>

 

 

jQuery 事件 - focus() 方法(与 blur() 相反)

定义和用法

当元素获得焦点时,发生 focus 事件。

当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。

focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数。

实例

当输入框获得焦点时,改变它的背景色:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").focus(function(){
    $("input").css("background-color","#FFFFCC");
  });
  $("input").blur(function(){
    $("input").css("background-color","#D6D6FF");
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>请在上面的输入域中点击,使其获得焦点,然后在输入域外面点击,使其失去焦点。</p>
</body>
</html>

 

jQuery 事件 - blur() 方法

定义和用法

当元素失去焦点时发生 blur 事件。

blur() 函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时执行的代码。

提示:早前,blur 事件仅发生于表单元素上。在新浏览器中,该事件可用于任何元素。

实例

当输入域失去焦点 (blur) 时改变其颜色:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").focus(function(){
    $("input").css("background-color","#FFFFCC");
  });
  $("input").blur(function(){
    $("input").css("background-color","#D6D6FF");
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>请在上面的输入域中点击,使其获得焦点,然后在输入域外面点击,使其失去焦点。</p>
</body>
</html>

 

jQuery 事件 - bind() 方法

定义和用法

bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。

实例

当点击鼠标时,隐藏或显示 p 元素:

$("button").bind("click",function(){
  $("p").slideToggle();
});

jQuery 事件 - change() 方法

定义和用法

当元素的值发生改变时,会发生 change 事件。

该事件仅适用于文本域(text field),以及 textarea 和 select 元素。

change() 函数触发 change 事件,或规定当发生 change 事件时运行的函数。

注释:当用于 select 元素时,change 事件会在选择某个选项时发生。当用于 text field 或 text area 时,该事件会在元素失去焦点时发生。

实例

当输入域发生变化时改变其颜色:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".field").change(function(){
    $(this).css("background-color","#FFFFCC");
  });
});
</script>
</head>
<body>
<p>在某个域被使用或改变时,它会改变颜色。</p>
Enter your name: <input class="field" type="text" />
<p>Car:
<select class="field" name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</p>
</body>
</html>

 

 

触发 change 事件

 

触发被选元素的 change 事件。

 

语法

$(selector).change()

将函数绑定到 change 事件

规定当被选元素的 change 事件发生时运行的函数。

语法

$(selector).change(function)

jQuery 事件 - dblclick() 方法

定义和用法

当双击元素时,会发生 dblclick 事件。

当鼠标指针停留在元素上方,然后按下并松开鼠标左键时,就会发生一次 click。

在很短的时间内发生两次 click,即是一次 double click 事件。

dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数。

提示:如果把 dblclick 和 click 事件应用于同一元素,可能会产生问题。

实例

当双击按钮时,隐藏或显示元素:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").dblclick(function(){
    $("p").slideToggle();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<button>请双击此处</button>
</body>
</html>

 

 

触发 dblclick 事件

 

语法

$(selector).dblclick()

将函数绑定到 dblclick 事件

语法

$(selector).dblclick(function)

 

jQuery 事件 - delegate() 方法

定义和用法

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

实例

当点击鼠标时,隐藏或显示 p 元素:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("div").delegate("button","click",function(){
    $("p").slideToggle();
  });
});
</script>
</head>
<body>
<div style="background-color:red">
<p>这是一个段落。</p>
<button>请点击这里</button>
</div>

</body>
</html>

 

语法

$(selector).delegate(childSelector,event,data,function)
参数描述
childSelector 必需。规定要附加事件处理程序的一个或多个子元素。
event

必需。规定附加到元素的一个或多个事件。

由空格分隔多个事件值。必须是有效的事件。

data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。

 

jQuery 事件 - die() 方法

 

定义和用法

die() 方法移除所有通过 live() 方法向指定元素添加的一个或多个事件处理程序。

实例

移除所有通过 live() 方法向 p 元素添加的事件处理程序:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").live("click",function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("p").die();
  });
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<p>请点击任意 p 元素,段落会消失。包括本段落。</p>
<button>移除通过 live() 方法向 p 元素添加的事件处理程序</button>
</body>
</html>

jQuery 事件 - error() 方法

定义和用法

当元素遇到错误(没有正确载入)时,发生 error 事件。

error() 方法触发 error 事件,或规定当发生 error 事件时运行的函数。

提示:该方法是 bind('error', handler) 的简写方式。

实例

如果图像不存在,则用一段预定义的文本取代它:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("img").error(function(){
    $("img").replaceWith("<p><b>图片未加载!</b></p>");
  });
});
</script>
</head>
<body>
<img src="errorimg.gif" />
<p>如果上面的图像没有正确地加载,会被替换为一段 "图片未加载" 的文本。</p>
</body>
</html>

jQuery 事件 - isDefaultPrevented() 方法

定义和用法

isDefaultPrevented() 方法返回指定的 event 对象上是否调用了 preventDefault() 方法

实例

防止链接打开 URL,并声明来自 isDefaultPrevented() 的结果:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("a").click(function(event){
    event.preventDefault();
    alert("Default prevented: " + event.isDefaultPrevented());
  });
});
</script>
</head>
<body>
<a href="http://w3school.com.cn/">W3School</a>
<p>preventDefault() 方法将防止上面的链接打开 URL。</p>
<p>请点击该链接,检查是否阻止了默认动作。</p>
</body>
</html>

jQuery 事件 - preventDefault() 方法

定义和用法

preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。

实例

防止链接打开 URL:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("a").click(function(event){
    event.preventDefault();
  });
});
</script>
</head>
<body>
<a href="http://w3school.com.cn/">W3School</a>
<p>preventDefault() 方法将防止上面的链接打开 URL。</p>
</body>
</html>

jQuery 事件 - pageX 属性

定义和用法

pageX() 属性是鼠标指针的位置,相对于文档的左边缘。

实例

显示鼠标指针的位置:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(document).mousemove(function(e){ 
    $("span").text("X: " + e.pageX + ", Y: " + e.pageY); 
  });
});

</script>
</head>
<body>
<p>鼠标指针位于: <span></span></p>
</body>
</html>

jQuery 事件 - pageY 属性

定义和用法

pageY() 属性是鼠标指针的位置,相对于文档的上边缘。

实例

显示鼠标指针的位置:

$(document).mousemove(function(e){
  $("span").text("X: " + e.pageX + ", Y: " + e.pageY);
});

jQuery 事件 - result 属性

定义和用法

result 属性包含由被指定事件触发的事件处理器返回的最后一个值,除非这个值未定义。

实例

显示最后一次点击事件返回的结果:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(e) {
    return ("最后一次点击的鼠标位置是: X" +e.pageX + ", Y" + e.pageY);
  });
  $("button").click(function(e) {
    $("p").html(e.result);
  });  
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<button>请点击这里</button>
</body>
</html>

jQuery 事件 - target 属性

定义和用法

target 属性规定哪个 DOM 元素触发了该事件。

实例

显示哪个 DOM 元素触发了事件:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p, button, h1, h2").click(function(event){
    $("div").html("点击事件由一个 " + event.target.nodeName + " 元素触发");
  });
});
</script>
</head>

<body>
<h1>这是一个标题</h1>
<h2>这是另一个标题</h2>
<p>这是一个段落</p>
<button>这是一个按钮</button>
<p>标题、段落和按钮元素定义了一个点击事件。如果您触发了事件,下面的 div 会显示出哪个元素触发了该事件。</p>
<div></div>
</body>
</html>

jQuery 事件 - timeStamp 属性

定义和用法

timeStamp 属性包含从 1970 年 1 月 1 日到事件被触发时的毫秒数。

实例

显示出当对按钮元素的点击事件发生时的时间戳:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(e){
    $("span").text(e.timeStamp);
  });
});
</script>
</head>
<body>
<p>对下面这个按钮的点击事件发生在 2018年 9 月 20 日之后 <span>unknown</span> 毫秒。</p>
<button>Click me</button>
</body>
</html>

jQuery 事件 - type 属性

定义和用法

type 属性描述触发哪种事件类型。

实例

显示触发了哪种类型的事件:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").bind('click dblclick mouseover mouseout',function(event){
    $("div").html("事件:" + event.type);
  });
});
</script>
</head>

<body>
<p>该段落定义了 click、double-click、mouseover 以及 mouseout 事件。如果您触发了其中的一个事件,下面的 div 中会显示出事件的类型。</p>
<div></div>
</body>
</html>

jQuery 事件 - which 属性

定义和用法

which 属性指示按了哪个键或按钮。

实例

显示按了哪个键:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keydown(function(event){ 
    $("div").html("Key: " + event.which);//Key: 8
  });
});
</script>
</head>
<body>

请随意键入一些字符:<input type="text" />
<p>当您在上面的框中键入文本时,下面的 div 会显示键位序号。</p>
<div />

</body>
</html>

jQuery 事件 - keydown() 方法

定义和用法

完整的 key press 过程分为两个部分:1. 按键被按下;2. 按键被松开。

当按钮被按下时,发生 keydown 事件。

keydown() 方法触发 keydown 事件,或规定当发生 keydown 事件时运行的函数。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

提示:请使用 .which 属性来确定按下了哪个按键(亲自试一试)。

实例

当按下按键时,改变文本域的颜色:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keydown(function(){
    $("input").css("background-color","#FFFFCC");
  });
  $("input").keyup(function(){
    $("input").css("background-color","#D6D6FF");
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>当发生 keydown 和 keyup 事件时,输入域会改变颜色。请试着在其中输入内容。</p>
</body>
</html>

jQuery 事件 - keypress() 方法

定义和用法

keypress 事件与 keydown 事件类似。当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。

不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。

keypress() 方法触发 keypress 事件,或规定当发生 keypress 事件时运行的函数。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

实例

计算在输入域中的按键次数:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
i=0;
$(document).ready(function(){
  $("input").keypress(function(){
    $("span").text(i+=1);
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>Keypresses:<span>0</span></p>
</body>
</html>

jQuery 事件 - keyup() 方法

定义和用法

完整的 key press 过程分为两个部分,按键被按下,然后按键被松开并复位。

当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。

keyup() 方法触发 keyup 事件,或规定当发生 keyup 事件时运行的函数。

注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。

提示:请使用 .which 属性来确定按下了哪个按键(亲自试一试)。

实例

当按下按键时,改变文本域的颜色:

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keydown(function(){
    $("input").css("background-color","#FFFFCC");
  });
  $("input").keyup(function(){
    $("input").css("background-color","#D6D6FF");
  });
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>当发生 keydown 和 keyup 事件时,输入域会改变颜色。请试着在其中输入内容。</p>
</body>
</html>

 

 

更多请参考jQuery 事件参考手册

posted @ 2018-09-20 10:05  小凢  阅读(223)  评论(0编辑  收藏  举报