第一次提问,请原谅。
相关技术:Knockout和Jquery版本:1.8.3(非常古老的项目)
背景:
我最近将古老的项目建筑从grunt转换为webpack2。然后发现了一个错误,ELEMENT.trigger('click.NAMESPACE')在没有.bind('click.NAMESPACE')的情况下触发了ELEMENT上的点击事件。 ELEMENT通过Knockout与点击事件保持联系。
发现:
1.)Grunt版本:$ .event.triggered =“click”会阻止ELEMENT.trigger做任何事情,因为阻止了element.click()。
2.)Webpack2版本:element.click()使$ .event.triggered = null,从而能够相应地触发Knockout点击事件。
3.。)ELEMENT.trigger('click.NAMESPACE')触发ELEMENT的click事件和名称间隔事件。这就是通过element.click()
调用Knockout click事件的原因问题:
1。)$ .event.triggered和element.click是如何相关的,我无法在线找到element.click()本机代码。
2。)任何有关webpack2会通过相同代码导致此问题的见解。
3。)如果您碰巧知道,请告诉我如何联系为Jquery工作的人?这会非常有帮助。
P.S。如果我删除这个.trigger事件,可以很容易地修复bug,但是.trigger的使用在整个应用程序中都是遗留的。另外,我不理解捆绑包Webpack2是如何产生这种效果的。在不知道原因的情况下推出这个版本太危险了。