Javascript Backbone.js手动单击复选框将激发,但';代码点击';一个没有';T

Javascript Backbone.js手动单击复选框将激发,但';代码点击';一个没有';T,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个带有两个复选框的页面。e、 g <label class="checkbox" for="1"> <input id="1" type="checkbox"> Option#1 </label> <label class="checkbox" for="2"> <input id="2" type="checkbox"> Option#2 </label> 该框在浏览

我有一个带有两个复选框的页面。e、 g

<label class="checkbox" for="1">
    <input id="1" type="checkbox">
        Option#1
</label>
<label class="checkbox" for="2">
    <input id="2" type="checkbox">
        Option#2
</label>
该框在浏览器中显示为使用上述代码段之一选中,但主干仅选择手动选中的框,而不是“在代码中”选中的框,即使两者同时完成

我感谢任何能加深我对主干事件理解的答案

您尝试过以下方法:

$('#2').prop('checked', true).trigger('change');

以编程方式更改复选框的选中状态似乎不会触发相应的更改事件。这与主干无关,jQuery认为这是一种正常行为

因此,总结一下:

$('1').prop('checked',true)-选中复选框

$('#1').change()-触发该复选框的
更改
事件

$('#1').prop('checked',true).change()-选中复选框并显式触发
更改
事件


我已经建立了一个JSFIDLE来演示您的示例,请查看。

我在这方面花了太多时间。我面临的问题是,我正在收听复选框上的单击事件:

events: {
  'click .some-checkbox-class: function() {...}
}
我在jasmine测试中尝试了几个小时以编程方式勾选这个复选框,结果发现主干从未选中它。(当我以客户的身份使用浏览器时,浏览器中的一切都正常工作)

我把它改成了这个,它有同样的效果,我可以在茉莉花测试中检查它,然后脊椎像应该的那样拿起它

events: {
  'change .some-checkbox-class: function() {...}
}
在jasmine单元测试中,我能够通过以下方式启动:


view.$el.find('.some checkbox class').prop('checked',true.change()

谢谢。。。我尝试了$('1').prop('checked',true).change();尽管jQuery选中了该复选框,但主干网只选中手动单击的复选框。主干网如何侦听复选框的
更改
?您应该有类似于JSFIDLE的东西(例如
事件:{“change#1”:“checkboxChangeHandler”}
events: {
  'change .some-checkbox-class: function() {...}
}