找回密码
 立即注册
搜索

同时传递事件对象和自定义参数 ,无法正确接收事件对象

1
回复
389
查看
[复制链接]

46

主题

47

帖子

465

积分

 楼主| 2021-7-30 17:37:09 显示全部楼层 |阅读模式

现象描述

在快应用中采用如下方式绑定组件的事件方法,同时传递事件对象和自定义参数,发现回调方法中没有正确接收到事件对象。

问题代码如下:

<template>
<!-- Only one root node is allowed in template. -->
<div class="container">
<input id="input1" type="button" value="跳转" onclick="jump(event,1)"/>
</div>
</template>
<script>
  module.exports = {
    jump: function (event, v) {
      console.info("e = " + JSON.stringify(event));
      console.info("v = " + v);
    },
  }
</script>

日志如下:


回复

使用道具 举报

23

主题

142

帖子

825

积分

2021-7-30 17:38:37 显示全部楼层

问题分析

上述代码中jump(event,1)不需要带上event事件对象,因为回调函数被调用时,会在参数列表末尾自动添加一个evt参数,通过evt参数访问回调事件相关上下文数据。

解决方法

修改代码如下:

<template>
<!-- Only one root node is allowed in template. -->
<div class="container">
<!—把问题代码中jump(event,1)修改为jump(1)-->
<input id="input1" type="button" value="跳转" onclick="jump(1)" />
</div>
</template>
<script>
  module.exports = {
    jump: function (v, evt) {
      console.info("e = " + JSON.stringify(evt));
      console.info("v = " + v);
    }
  }
</script>

修改后运行日志如下:


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册