前端:浅析JavaScript和jQuery区别 -- 事件

JavaScript:

1、事件汇总

  • 窗口事件
事件说明
onload页面或图片加载完成时
onunload用户离开页面时
onscroll元素滚动时
  • 表单元素事件

事件说明
onchange框内容改变时
onsubmit点击提交按钮时
onreset重新点击鼠标按键时
onselect文本被选择时
onblur元素失去焦点时
onfocus当元素获取焦点时
  • 键盘事件

事件说明
onkeydown按下键盘按键时
onkeypress按下或按住键盘按键时
onkeyup放开键盘按键时
  • 鼠标事件
事件说明
onclick鼠标点击一个对象时
ondblclick鼠标双击一个对象时
onmousedown鼠标被按下时
onmousemove鼠标被移动时
onmouseout鼠标离开元素时
onmouseover鼠标经过元素时
onmouseup释放鼠标按键时
  • 其他
事件说明
onresize当窗口或框架被重新定义尺寸时
onabort图片下载被打断时
onerror当加载文档或图片时发生错误时

2、事件绑定

在标签中绑定:   event="function(param1,param2,...)"  

<input type="file" name="hruser_files" onchange="upload_file()"/>
  • 在js代码中绑定:   element.event=function
document.getElementById('i2').onclick=f2 
  • 在js代码中绑定:   element.addEventListener(eventfunction)

            注意: 不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick"。

document.getElementById("i3").addEventListener("click", f2)

注意:上面的后两种绑定事件发生在“标签出现之后”,所以应该把script标签写在body标签里面的最后面。

 

 

 

jQuery:

1、事件汇总

和原生js去掉前缀on基本一样。jQuery不支持form元素的reset事件。

  • 窗口事件
事件说明
load页面或图片加载完成时
unload用户离开页面时
scroll滚动文档的可视部分时
  • 表单元素事件

事件说明
change框内容改变时
submit点击提交按钮时
select文本被选择时
blur元素失去焦点时
focus当元素获取焦点时
  • 键盘事件

事件说明
keydown按下键盘按键时
keypress按下或按住键盘按键时
keyup放开键盘按键时
  • 鼠标事件
事件说明
click鼠标点击一个对象时
dblclick鼠标双击一个对象时
mousedown鼠标被按下时
onmousemove鼠标被移动时
mouseout鼠标离开元素时
mouseover鼠标经过元素时
mouseup释放鼠标按键时
  • 其他
事件说明
resize当窗口或框架被重新定义尺寸时
abort图片下载被打断时
error当加载文档或图片时发生错误时

 

2、事件绑定(bind、live、delegate、on)

四中使用方式基本一致,bind只针对已经存在的元素进行事件绑定,后三者支持未来新添加元素绑定。

  • bind()     

$(selector).bind("event",[data],function)   

$(selector).bind("event1 event2 event3...",[data],function) 

$(selector).bind({event1:function1,event2:function2,event3:function3,...}) 

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

$("button").bind("click",functionName);

$("button").bind("click mouseout",functionName);

$("button").bind({
    click:function(){$("p").slideToggle();},
    mouseover:function(){$("body").css("background-color","red");},  
    mouseout:function(){$("body").css("background-color","#FFFFFF");}  
  });

 

  • 着重介绍on()

自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。

注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

提示:如需移除事件处理程序,请使用 off() 方法。

提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

$(selector).on(event,childSelector,data,function)

event必需。规定要从被选元素移除的一个或多个事件或命名空间。

由空格分隔多个事件值,也可以是数组。必须是有效的事件。
childSelector可选。规定只能添加到指定的子元素上的事件处理程序(事件委托,针对未来的元素。且不是选择器本身,比如已废弃的 delegate() 方法)。
data可选。规定传递到函数的额外数据。
function可选。规定当事件发生时运行的函数。
 $(document).on("click",function(){
    console.log('this is paragraph');
 });

$(document).on("click mouseover",function(){
    console.log('this is paragraph');
 });

$(document).on(
    "click":function(){console.log('this is paragraph');
    "mouseover":function(){console.log('this is paragraph');
    "mouseout":function(){console.log('this is paragraph');
 });

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值