• 模拟操作和命名空间


    模拟操作:

    $(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操作
  • 相关阅读:
    jsonp 请求和回传实现
    序列化实现原型模式
    java基础30问
    模板方法模式
    开发思维导图
    策略模式
    使用vue-router设置每个页面的title
    node.js解决中文乱码问题
    Vue-cli proxyTable代理 解决开发环境的跨域问题
    Vue缓存需要被缓存的页面
  • 原文地址:https://www.cnblogs.com/by-dxm/p/6390697.html
Copyright © 2020-2023  润新知