Polymer 2事件冒泡困惑:文档称不会触发的函数为何实际被调用?
关于Polymer元素中
function x(e,d,t)意外触发的问题分析 嘿,我来帮你理理这个问题。首先看你贴的dom-element.html代码,你自定义的DomElement里只写了c()方法,根本没定义function x(e,d,t)对吧?那这个函数被触发,大概率是这几个原因,可能你对文档的理解有点偏差:
1. 这个x函数根本不是你的代码
你写的自定义元素里没有这个函数,那它要么是Polymer框架内部的辅助函数(比如处理事件绑定、代理执行的工具函数),要么是页面里其他脚本(比如全局JS、你导入的其他组件)带进来的。
2. 文档说的“不应被调用”可能指的是开发者手动调用
很多框架的内部函数,文档会明确说“不要手动调用”,但框架自己会在合适的时机自动触发它。比如你按钮绑定了on-click="c",Polymer内部会有一套事件处理逻辑,可能就会通过类似x的函数来代理执行你写的c()方法——这属于框架正常工作流程,完全不是问题。
3. 怎么确认触发原因?
你可以打开浏览器开发者工具的Sources面板,给x函数打个断点,看看调用栈里是谁触发了它:
- 如果调用栈里全是Polymer相关的内部代码,那就是框架正常调用,不用管
- 如果是其他脚本触发的,那你再排查对应的代码就行
另外别忘了确认你看的文档是不是和你用的Polymer版本匹配,不同版本的内部实现可能有差异,别拿旧版文档套新版代码哦。
内容的提问来源于stack exchange,提问作者Masa O
相关产品推荐
相关产品推荐

