模拟操作和命名空间

模拟操作:

$(function(){
    //用法和附加参数
    $('input').click(function(e,data1,data2,data3,data4){
        alert(data1 + '|' + data2 + '|' + data3[1] + '|' + data4.user);
    }).trigger('click',['123','abc',['a','b','c'],{user:'dang'}]);
    
    //自定义事件
    $('input').bind('myEvent',function(){
        alert('自定义事件');
    }).trigger('myEvent');
    
    //阻止默认行为
    $('input').bind('myEvent',function(){
        alert('自定义事件');
    }).triggerHandler('myEvent'); //模拟触发,但不会执行默认行为,相比于trigger()
    
    //trigger和triggerHandler的区别
    //用triggerHandler阻止默认行为
    //triggerHandler只执行第一个匹配的元素
    //trigger返回jQuery对象,可以连缀;triggerHandler返回return值
    //trigger会冒泡,triggerHandler不会
    $('input').bind('myEvent',function(e){
        e.preventDefault();
        alert('自定义事件');
    }).triggerHandler('myEvent'); //模拟触发,但不会执行默认行为,相比于trigger()
    
    $('input').bind('myEvent',function(){
        alert('自定义事件');
    }).triggerHandler('myEvent'); //模拟触发,但不会执行默认行为,相比于trigger()
    
    $('input').bind('myEvent',function(){
        alert('自定义事件');
    }).trigger('myEvent').css('color','red'); //模拟触发,但不会执行默认行为,相比于trigger()
    
});

 

命名空间:

    //命名空间:
    $('input')bind('click.aaa',function(){
        alert('aaa');
    });
    $('input')bind('click.bbb',function(){
        alert('bbb');
    });
    $('input').unbind('click.bbb');//只移除一个bbb,没有命名空间会全部click移除
    
    $('input').trigger('click.aaa');//只模拟aaa的click操作

 

posted @ 2017-02-12 11:59  党兴明  阅读(162)  评论(0)    收藏  举报