鼠标事件
键盘事件
其他事件
事件参数
事件绑定与取消

含fn参数说明有回调函数在里面


鼠标事件-click、dblclick

click:鼠标单击时触发;dblclick:鼠标双击时触发
例如:

$("div").click(function(){
$(this).css("text-indent","0")//点击后首行缩进为0
})
  • 鼠标双击时会触发单击事件,如果要区别开来需要阻止事件冒泡
    ###鼠标事件-mousedown、mouseup
    mousedown:鼠标按下时触发
    mouseup:鼠标松开时触发
    例如:
$('div').mousedown(function(){
        $(this).css('background-color','red'); //鼠标按下时背景变红
    })
 $('div').mouseup(function(){
        $(this).css('background-color','yellow'); //鼠标按下时背景变黄
    })

鼠标事件-mouseenter、mouseleave

鼠标进入、移出时触发
例如:

$('li').mouseenter(function(){
        $(this).css('font-size','40px').css('color','red');//鼠标移入时修改字体大小和颜色
    })
    $('li').mouseleave(function(){
        $(this).css('font-size','medium').css('color','black');//鼠标移出时修改字体大小和颜色
    })

鼠标事件-hover

hover([over],out)
将鼠标进入、移出时触发整合成一个函数

$('li').hover(function()
    { 
     $(this).css('font-size','40px').css('color','red');//鼠标移入时修改字体大小和颜色
    },function()
    {
     $(this).css('font-size','medium').css('color','black');//鼠标移出时修改字体大小和颜色
    })

鼠标事件-mouseover、mouseout

鼠标进入(移出)指定元素及其子元素时触发

  • 由于每个子元素都会触发事件,不利于事件冒泡和捕获,因此不建议使用
    ###鼠标事件-mousemove
    mousemove([[data],fn])
    在DOM内部移动时会发生mousemove事件
    ###鼠标事件-scroll
    scroll([[data,fn])
    滚动指定元素时,会发生scroll事件
  • 不一定是通过滚轮,拖动滚动条也可以

键盘事件

  • 按下键盘会触发键盘事件,顺序依次为:keydown->keypress->keyup
    keydown、keypress事件触发在文字还没嵌入到文本框(只是按下字符键,显示的结果)

keydown([[data],fn])

当键盘或按钮被按下时,发生keydown事件

  • 必须要在能获取焦点的地方才能发生事件
  • 在输入法中输入的会有process值

keyup([[data],fn])

当键盘或按钮松开时,发生keydown事件,发生在当前获得焦点(光标)的元素上
例如:

$('input').keyup(function(){
        $('p').text($(this).val()); //在p标签上实时获取输入值
    })
  • 必须要在能获取焦点的地方才能发生事件
  • 在输入法中输入的会有process值
    ###keypress([[data],fn])
    当键盘或按钮被按下时,发生keypress事件
  • 旧版键盘事件,但还是被保留下来了,只有输入内容的时候才响应,ctrl、shift还有输入法等输入不响应,因为没有输入内容

其他事件

###其它事件-ready、resize
read(fn)
当DOM载入就绪可以查询及操纵时绑定一个要执行的函数
resize([[data],fn])
当调整浏览器窗口的大小时,发生resize事件

  • 注意是窗口大小,并不是文档大小,可以使用window
    ###其它事件-focus、blur
    focus([[data],fn])、blur([[data,fn])
    当元帅**获得(失去)**焦点时触发focus(blus)事件
    例如判断输入框是否有内容,并改变边框颜色和提示信息:
$('input').focus(function(){
       $('span').text('请输入用户名');//获取焦点后提示
   })
    $('input').blur(function(){
        if($(this).val() == ''){ //失去焦点后判断
        $(this).css({'border':'2px solid red'});
       $('span').text('用户名不能为空') 
        }
       else{
        $(this).css({'border':'2px solid green'});
        $('span').text('');
       }
   })

其它事件-change

change([[data],fn])
当元素的值发生改变时,会发生change事件

  • 非实时,只有value改变的时候才会发生

4-5 其它事件-select

select([[data],fn])
textarea或者文本类型的input中的文本被选中时触发,可选中并且还能编辑才有效

其它事件-submit

submit([[data],fn])
提交表单时会发生submit事件

  • button 在form中时 在除了IE的其他内核浏览器中 作为submit存在
  • submit事件的用途
    提交表单
    阻止表单提交
    表单验证
    submit()是表单 要提交时 所触发的事件(所以要放在点击事件中)
    所以在submit 的回调函数中 放入验证时所需要进行的操作
    return false时 表单不会被提交

事件参数event

  • 所有事件都会传递一个event参数

事件绑定与取消-on

on(events,[selector].[data].fn)
在选择的元素上绑定一个或者多个事件的事件处理函数
可以参考以下格式:

$(document).on('事件类型; '绑定的元素',fn);
同时绑定多个事件$(document).on({
'事件类型': fn
},{
'事件类型': fn
});
  • [selector]是可以动态生成的
  • 通过{}绑定多个事件

事件绑定与取消-off

off(events,[selector].[data].fn)
在选择的元素上移除一个或者多个事件的事件处理函数

  • jQuery中提供了四种事件监听方式,分别是bind、live、delegate、on,对应的解除监听的函数分别是unbind、die、undelegate、off (面试竟然问事件绑定有多少种
  • 每个绑定都要对应一个解绑,代码有点冗余
  • document不是一个普通的对象,必须用add()来选择

事件绑定与取消-one

one(type.[data].fn)
为每一个匹配元素的特定事件(比如说click)绑定一个一次性的事件处理函数

  • 绑定一次就会自动移除

简书传送门:https://www.jianshu.com/p/6f571d483902