我在应用程序&中使用Backbone遇到事件没有发生的情况。
我的视图,映射到包含多个控件(文本区域,几个单选按钮等)和保存按钮的对话框界面。我定义了以下事件:
events: {
'input': 'onchange',
'change': 'onchange',
'click .save': 'save',
'click .cancel': 'cancel',
},
每当对话框中的任何表单元素发生更改时,我都会触发onchange
,执行一些验证并启用或禁用保存按钮。
在' normal'流程,一切正常。我填写textarea,单击单选按钮上的选项,然后单击保存。我的工作得到妥善保存。
在另一个流程中,我尝试在光标仍在文本区域时单击“保存”,但没有任何反应。然后,如果我再次单击“保存”按钮,表单将正确保存。我已尝试在save
方法的最开始设置断点,并确认在第一次按键单击期间未调用断点,然后在第二次按钮单击时正确调用。
我试图用一个简单的例子作为jsFiddle来证明这个问题,但是我无法隔离这个错误的行为。
我第一次点击按钮时可能阻止点击事件和save
功能?您是否有任何有关帮助调试此类问题的提示或建议?
我回去使用了一个分析器来深入了解发生了什么。这是我的过程:
这是我的个人资料:
有趣的是,当onchange处理程序触发时,有一个清晰的活动,被视为火焰图中的可见峰值。但是,当我第一次点击保存时,根本没有捕获到javascript执行!非常好奇...