Javascript Backbone.js手动单击复选框将激发,但';代码点击';一个没有';T
我有一个带有两个复选框的页面。e、 gJavascript 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> 该框在浏览
<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() {...}
}