素材牛VIP会员
jQuery 自定义事件名字
 牛***满  分类:JavaScript  人气:1073  回帖:2  发布于6年前 收藏

我有如下代码:

$(document).ready(function() {    
        $(document).on('click.name', {key: 'ssss'},function(event) {
            console.log(event.data.key);
        });
        $(document).on('click.age', {key: 'age'},function(event) {
            console.log(event.data.key);
        });
});

自定义了两个事件:click.name 和click.age, 当我点击页面的时候,这两个方法都执行了,为什么?我要是把事件名字换为其他的比如test之类就不会执行,这还跟自定义事件名字有关系?

 标签:javascript

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv6 码匠
lo***ou 职业无 6年前#1

因为本来就有click事件啊。
click.nameclick.age都属于click事件,直接点击当然会都触发。
自定义事件一般是用代码触发的,如:
this.$element.trigger('click.name')

Lv1 新人
岛***疤 页面重构设计 6年前#2

代码写法有些问题。

  • on用于事件的监听:
$('#elem').on('listen', function() {
    alert("快来触发我")
 });
  • trigger用于触发事件,并且可以进行传参,将参数传递到事件监听的回调函数里面:
$('#elem').trigger('listen');
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取