2017-05-25 15:17:00 3059次浏览 1条回答 0 悬赏 50 金钱

最近在阅读yii.activeForm.js源码,看到下面这些写法不理解

$form.on('submit.yiiActiveForm', methods.submitForm);
$form.bind('reset.yiiActiveForm', methods.resetForm);
$input.on('change.yiiActiveForm', function () {
  validateAttribute($form, attribute, false);
});

我的问题是,为什么要在绑定的事件后面加,.yiiActiveForm,有什么特殊的含义吗?

最佳答案

  • dingjj2010 发布于 2017-05-25 16:04 举报

    和php命名空间类似.事件+命名空间
    源码中submit,reset,change都是在yiiActiveForm下的,
    可以避免其他父级下的submit的影响.

    同时如果解除事件,可以直接解除 ".yiiActiveForm" ,那么它下面的都一起解除了.

    1 条回复
    回复于 2017-05-25 16:20 回复

    简单的理解,多级命名空间.就是按照层级左匹配.层级就是按照"."分隔
    例如trigger了 submit,那么会触发事件左边层级包含submit的所有事件,例如submit.yiiActiveForm, submit.aa, submit.bb, submit.yiiActiveForm.aa.bb.cc.dd.......
    同理trigger了 submit.yiiActiveForm,会触发submit.yiiActiveForm.aa, submit.yiiActiveForm.bb, submit.yiiActiveForm.aa.bb.cc.dd....

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
johnny1991
副总裁

johnny1991

注册时间:2017-03-26
最后登录:2024-03-05
在线时长:81小时27分
  • 粉丝26
  • 金钱3285
  • 威望580
  • 积分9895

热门问题