jQuery事件

  • 1.事件机制
    jQuery的事件机制,指的是:jQuery对JavaScript操作DOM事件的封装,包括了:事件绑定、事件解绑、事件触发
  • JavaScript:
btn.onclick = function() {};    //给按钮绑定事件  
  • jQuery:
$btn.click(function() {});    //给按钮绑定事件 
click是一个方法,内部是对onclick事件的封装
  • 2.简单的事件
    click() 单击事件
    blur() 失去焦点事件
    mouseenter() 鼠标进入事件
    mouseleave() 鼠标离开事件
    dblclick() 双击事件
    change() 改变事件,如:文本框值改变,下拉列表值改变等
    focus() 获得焦点事件
    keydown() 键盘按下事件
    mouseover冒泡,mouseenter不冒泡
    其他参考:http://www.w3school.com.cn/jquery/jquery_ref_events.asp
  • 3.事件绑定
  • bind()方式
    作用:给匹配到的元素直接绑定事件(不推荐,1.7以后的jQuery版本被on取代)
// 绑定单击事件处理程序  
第一个参数:事件类型  
第二个参数:事件处理程序  
$("p").bind("click mouseenter", function(){  
    //事件响应方法  
}); 
  • delegate()方式
    优势:减少事件绑定次数提高效率,支持动态创建出来的元素绑定事件
// 第一个参数:div,要绑定事件的元素  
// 第二个参数:事件类型  
// 第三个参数:事件处理函数  
$("div").delegate("p", "click", function(){  
    //为 div下面的所有的p标签绑定click事件  
});  
  • on()方式(最现代的方式,强烈建议使用的方式)
    1
   绑定单个事件
 $('p').on('click',function () {
               console.log('xxx');
           })

2

绑定多个事件 -> 同一个回调函数
$('p').on('click mouseenter ',function (event) {
               console.log('xxx' + event.type);
           })

3

绑定多个事件 -> 多个回调函数(键值对)
键: 事件类型
值: 需要执行的函数
$('p').on({
               'click': cE,
               'mouseenter': function () {
                   console.log('鼠标移入');
               }
           })
 function cE() {
               console.log('单机事件');
           }

4

//为 div下面的所有的span标签绑定click事件 
$("div").on( "click",“span”, function() {}); 
  • 4.事件解绑
  • unbind() 方式
$("div").unbind(); //解绑所有的事件  
$("div").unbind(“click”); //解绑指定的事件  
  • undelegate() 方式
$("div").undelegate();     //解绑所有的delegate事件  
$("div").undelegate( “click” );    //解绑所有的click事件
  • off解绑on方式绑定的事件
// 解绑匹配元素的所有事件  
$("div").off();  
// 解绑匹配元素的所有click事件  
$("div").off(“click”);  
// 解绑所有代理的click事件,元素本身的事件不会被解绑  
$("div").off( “click”, “**” );  

事例

$('p').click(function () {
               console.log('xxxx');
               $('p').off('click');
           })
  • 5.自动触发事件
    trigger()方法触发事件
会触发事件的默认行为.
$(':submit').trigger('click');

triggerHandler()方法触发事件

不会触发事件的默认行为.
$(':submit').triggerHandler('click');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容