jQuery 自定义事件名字

我有如下代码:

$(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之类就不会执行,这还跟自定义事件名字有关系?

阅读 3.3k
3 个回答

代码写法有些问题。

  • on用于事件的监听:
$('#elem').on('listen', function() {
    alert("快来触发我")
 });
  • trigger用于触发事件,并且可以进行传参,将参数传递到事件监听的回调函数里面:
$('#elem').trigger('listen');

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题