Backbone.js 单击事件不使用主干和jQuery触发

Backbone.js 单击事件不使用主干和jQuery触发,backbone.js,backbone-events,Backbone.js,Backbone Events,我在一个应用程序中使用主干&遇到了一个事件不触发的情况 “我的视图”映射到一个对话框界面,该界面包含多个控件、一个文本区域、一对单选按钮等和一个保存按钮。我正在定义以下事件: events: { 'input': 'onchange', 'change': 'onchange', 'click .save': 'save', 'click .cancel': 'cancel', }, 每次对话框中的任何表单元素发生更改时,

我在一个应用程序中使用主干&遇到了一个事件不触发的情况

“我的视图”映射到一个对话框界面,该界面包含多个控件、一个文本区域、一对单选按钮等和一个保存按钮。我正在定义以下事件:

events: {
        'input': 'onchange',
        'change': 'onchange',
        'click .save': 'save',
        'click .cancel': 'cancel',
    },
每次对话框中的任何表单元素发生更改时,我都会触发onchange,它会执行一些验证并启用或禁用save按钮

在“正常”流程中,一切正常。我填写文本区域,单击单选按钮上的一个选项,然后单击保存。我的作品保存得很好

在另一个流程中,当光标仍在文本区域时,我尝试单击“保存”,但什么也没有发生。然后,如果我再次单击save按钮,表单将正确保存。我尝试在save方法的最开始设置断点,并确认在第一次单击按钮时未调用断点,然后在第二次单击按钮时正确调用断点

我试图用一个最小的示例作为JSFIDLE来演示这个问题,但我无法隔离错误行为

在我第一次单击按钮时,什么会阻止单击事件和保存功能?您有什么提示或建议来帮助调试这样的问题吗

更新:使用Javascript探查器 我回去用了一个剖析器来深入了解正在发生的事情。我的过程如下:

设置测试页面,填写除主文本区域外的所有内容 启动分析器 在textarea中键入一个字母,等待onchange处理程序启动,这可以通过启用Save按钮来证明 等几秒钟 单击保存-不发生任何事情 停止分析器 这是我的个人资料:


有趣的是,当onchange处理程序启动时,会有一系列明显的活动,在火焰图表中被视为一个可见的尖峰。但是,当我第一次单击save时,根本没有捕获javascript执行!非常奇怪…

当您单击按钮时,文本区域不应该失去焦点吗?在浏览器中使用javascript探查器验证是否在任何地方调用了preventDefault/StopperPagation。@Zuhaib,谢谢你的建议。我使用了一个配置文件,没有看到任何调用preventDefault或StopPropagation。用我看到的更新答案。