jQuery——事件方法

起始事件:

当网页全部加载完成后,才进行jQuery的对象、属性的处理工作。一般用于jQuery中的最前面。

ready()
$(document).ready(function(){
  $(".btn1").click(function(){
    $("p").slideToggle();
  });
});
//还有一个等价的方法:
$(function(){
    $.......
});
  • 当DOM已经加载,并且页面已经完全呈现时,会发生ready事件。
  • ready函数仅能用于当前文档,因此无需选择器
  • 当ready事件发生时执行的代码

鼠标事件:

方法 例句 描述
click()
$(selector).click(function)
  • 当单击元素时,发生 click 事件
  • 会和dblclick世间法发生冲突。
  • 注意,当元素没有加载完成时,就运行绑定事件的话,那么就会产生无法绑定的情况,这时就需要进行委托。(on方法或one方法)
mousedown()
$(document).ready(function(){
  $("input").keydown(function(event){ 
    $("div").html("Key: " + event.which);
  });
});
  • 当鼠标进行按下时,会发生该事件
mouseup()
$("button").mouseup(function(){
  $("p").slideToggle();
});
  • 当在元素上放松鼠标按钮时,会发生该事件。
  • 与click事件不同,mouseup只需要放松鼠标操作时,就会触发事件
dblclick()
$(selector).dblclick(function)
  • 当双击元素时,触发 dblclick 事件
  • 会和click事件发生冲突。
toggle()  
$("p").toggle(
  function(){
  $("body").css("background-color","green");},
  function(){
  $("body").css("background-color","red");},
  function(){
  $("body").css("background-color","yellow");}
);
  • 绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。
  • 同样可以使用show和hide元素事件
focus()
$(document).ready(function(){
  $("input").focus(function(){
    $(this).css("background-color","#cccccc");
  });
  • 放鼠标点击获得焦点时,也就是输入框点击后的焦点
blur()
$("input").blur(function(){
  $(this).css("background-color","#ffffff");
});
  • 失去焦点时,其他同上
mouseenter()
$(selector).mouseenter(function)
  • 当鼠标指针穿过(进入)被选元素时,会发生 mouseenter 事件。
  • 只包含选取元素上时会触发。不会影响子元素。
  • 与mouseover事件相冲突,但与其有区别。
  • hover方法也会触发该事件
mouseleave()
$(selector).mouseleave(function)
  • 当鼠标指针离开被选元素时,会发生 mouseleave 事件
  • 只包含选取元素上时会触发事件。
  • 与mouseleave事件相冲突。
  • hover方法也会触发该事件
mousemove()
$(selector).mousemove(function)
  • 当鼠标指针位于元素上方时,会发生 mouseover 事件
  • 包含选取元素和其子元素
  • 与mouseenter事件相冲突。
mouseout()
$(selector).mouseout(function)
  • 当鼠标指针离开被选元素时,会发生 mouseout 事件
  • 包含选取元素和其子元素一并触发,就是更加的敏感了。
  • 与mouseleave事件相冲突。
hover()
$(selector).hover(inFunction,outFunction)
等同于
$( selector ).mouseenter( handlerIn )
    .mouseleave( handlerOut );
  • 当鼠标指针悬停在被选元素上时要运行的两个函数,mouseenter 和 mouseleave.
  • 如果只规定一个函数,那么将会在两个  事件中都运行
mouseover()
$("p").mouseover(function(){
  $("p").css("background-color","yellow");
});
  • 当鼠标指针位于元素上方时,发生该事件。
  • 不论鼠标指针穿过备选元素或其子元素都会触发该事件
event.pageX
$(document).ready(function(){
  $(document).mousemove(function(e){ 
    $("span").text("X: " + e.pageX + 
                   ", Y: " + e.pageY); 
  });
});
//指定屏幕中选取鼠标的X轴和Y轴的位置
  •  鼠标指针的位置,就是鼠标的X轴位置
event.pageY  同上
  •  鼠标指针的位置,就是鼠标的Y轴位置

键盘事件:

方法 例句 描述
keydown()
$("input").keydown(function(event){
    $("div").html("Key: " + event.which);
});
  • 当键盘被按下时发生的事件
  • 使用event.which属性来返回哪个键盘按键被按下。
keypress()
$(selector).keypress(function)
  • 当按钮被按下时发生该事件
  • 不会触发所有的按键(alt,ctrl,shift,esc)
keyup()
$(document).ready(function(){
  $("input").keyup(function(event){ 
    $("div").html("Key: " + event.which);
  });
});
  • 当键盘被松开时发生的事件
  • 使用event.which属性来返回哪个键盘按键被按下

表单事件:

方法 例句 描述
submit()
$(selector).submit(function)
  • 提交表单时,会发生该事件。
  • 该事件只适用于form元素
change()
$(selector).change(function)
  • 当元素的值改变时
  • 只适用于表单字段
  • 当用于select元素时,该事件会在选择某个选项时发生。
  • 当用于text field和test area 时,该事件会在元素失去焦点时发生。
select()
$("input").select(function(){
  $("input").after(" Text marked!");
});
  • 当textarea或文本类型的input元素中的文本被选择时,会发生该事件。

文档/窗口事件:

方法 例句 描述
resize()
$(selector).resize(function)
  • 当调整浏览器窗口大小时,发生该事件
scroll()
$(selector).scroll(function)
  • 当用户滚动指定的元素时,发生该事件

其他:

方法 例句 描述
bind()
$(selector).bind(event,data,function)
//event:必需,添加到一个元素的一个或多个事件
//data:可选,传递到函数的额外数据
//function:必需,当时间发生时运行的函数
  • 为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数
delegate()
$("div").delegate("button","click",function(){
  $("p").slideToggle();
});
  • 向匹配元素的当前或未来的子元素附加一个或多个事件
  • 例句中,只有div下的button才会受到影响。而其他元素不会受到影响。
live()
$("button").live("click",function(){
  $("p").slideToggle();
});
  • 为当前或未来的匹配元素添加一个或多个事件
  • 例句中button如果有多个,那么都会受到影响。而使用delegate则不会。
die()
$(selector).die(event,function)
  • 移除所有通过 live() 函数添加的事件。
  • 在live事件产生后无法删除,只能阻止后续发生的live事件
error()
$(selector).error(function)
  • 当元素遇到错误时,发生该事件。
  • 该方法是bind('error','handler')的简写方式

event.isDefault

Prevented()

$("a").click(function(event){
   event.preventDefault();
  alert("Default prevented: " + 
        event.isDefaultPrevented());
});
  • 返回 event 对象上是否调用了 event.preventDefault()。

event.prevent

Default()

$("a").click(function(event){
  event.preventDefault();
});
  • 阻止事件的默认动作,例如点击提交按牛时阻止对表单的提交。
event.result
$("button").click(function(e) {
  $("p").html(e.result);
});
  • 包含由被指定事件触发的事件处理器返回的最后一个值。
event.target
$("p, button, h1, h2").click(function(event){
  $("div").html("Triggered by a " + 
                event.target.nodeName +
                " element.");
});
  • 触发该事件的 DOM 元素。
event.timeStamp
$("button").click(function(event){
  $("span")html(event.timeStamp);
});
  • 该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。
event.type
$("p").bind('click dblclick mouseover mouseout',
            function(event){
  $("div").html("Event: " + event.type);
});
  • 描述事件的类型。
event.which
$("input").keydown(function(event){
  $("div").html("Key: " + event.which);
});
  • 指示按了哪个键或按钮。
  • 返回的是ascii编码,并且不区分大小写。
one()
$("p").one("click","li",function(){
  $(this).animate({fontSize:"+=6px"});
});
//p指的是已经有的添加好的标签
//li是之后获取数据后再添加的标签
  • 当事件对象提前于创建标签运行时,将无法绑定事件,这是需要委托进行。
  • 向匹配元素添加事件处理器(也叫委托)。每个元素只能触发一次该处理器。on方法能触发多次。
ready()
$(document).ready(function(){
  $(".btn1").click(function(){
    $("p").slideToggle();
  });
});
  • 当DOM已经加载,并且页面已经完全呈现时,会发生ready时间。
  • ready函数仅能用于当前文档,因此无需选择器
  • 当ready事件发生时执行的代码
trigger()
$("button").click(function(){
  $("input").trigger("select");
});
  • 触发被选元素的指定事件类型。
  • 就是像点击全选,选项框全部打钩一样。
triggerHandler()
$("button").click(function(){
  $("input").triggerHandler("select");
});
  • 和trigger一样的形式,但不会产生默认事件。
  • 像点击文本全选后,不会标蓝。
unbind()
$("button").click(function(){
  $("p").unbind();
});
  • 能够移除所有的或被选的事件
  • 当事件发生时终止指定函数的运行
  • 适用于任何通过jQuery附件的事件处理程序
  • 如没有规定参数,将会删除指定元素的所有事件。
undelegate()
$(selector).undelegate(selector,event,function)
//selector:可选,规定需要删除事件的选择器
//event:可选,规定需要删除处理函数的一个或多个事件
//function:可选,规定要删除的具体事件处理函数
  • 删除有delegate方法添加的一个或多个事件处理程序
posted @   新兵蛋Z  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示