jquery绑定自定义事件

jquery绑定自定义事件,可以实现预先绑定好一个处理方法,当需要使用的时候利用jquery trigger来触发自定义事件,以达到方便快捷的目的。
我们来假设一个这样的场景,一个textarea中的字数计算,如果是直接键盘输入或者粘贴进来的话,是可以使用input方法检测到,但是如果是通过js插入的文本,这个时候input事件就监测不到了,
这个时候如果我们事先给绑定一个myChange事件,它的回调函数就是来处理计算其中的文本字数的,我们在使用js给这个textarea赋值以后,连缀写上.trigger("myChange")就可以计算到。

下面的jquery自定义事件只是一个简单测试。有需要的朋友可以尝试着做些更实用的功能

<textarea id="textarea"></textarea>

<p><button type="button" id="btn1">jquery自定义事件-事件注册</button></p>
<p><button type="button" id="btn2">jquery自定义事件-测试触发</button></p>
<p style="margin-top: 100px;"><a href="http://www.51xuediannao.com/"> 懒人建站</a>http://www.51xuediannao.com/整理</p>
<script src="http://libs.useso.com/js/jquery/1.11.1/jquery.min.js"></script>
<script>
    $btn1 = $("#btn1");
    //jquery定义一个自定义事件 diyEvent  注意:回调函数中的第一个参数是事件,需要接受其他参数的话,在后面跟上其他参数即可  不太好表述,仔细对照“调用示例”能看明白
    $btn1.on("diyEvent",function(event,a,b,fun){
        console.log(a,b);
        fun();
    });
 
    //jquery自定义事件触发示例, 注意: trigger传入的参数第一个是自定义的事件名,第二个参数是一个数组,数组中的项会和自定义事件中回调的参数项对应
    $("#btn2").click(function(){
        $btn1.trigger("diyEvent",["11","22",function(){alert("懒人建站")}])
    })
 //我们来测试一下 textarea 这个场景
    var haHa = function(){
        var test = function($el){
            var len= $el.val().length;
            console.log(len)
        };
        $("#textarea").on("input propertychange",function(){
            test($(this));
        }).on("myChange",function(){
            test($(this));
        });
    };
    haHa();
 
    $btn1.click(function(){
        $("#textarea").val("jquery的自定义事件通过on绑定trigger触发").trigger("myChange")
    })
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值