我有骨干视图:
var aView = Backbone.view.extend({
events: {
'change #select-opr': 'changeOperation'
},
initialize: function () {},
render: function () {},
changeOperation: function () {
console.log("event triggered.");
}
});
更改事件与选择下拉列表相关联。
<select name="operation" id="select-opr" style="height: 29px;">
<option>Select an Attribute</option>
<option value="method">Method</option>
<option value="project">Project</option>
</select>
当我更改选择选项时,我在console.log中获得两个'event triggered'
的日志。表示事件被触发两次。为什么会这样?
以前有人发现过这个问题吗? 我在做什么错误?
答案 0 :(得分:0)
我不确定您要尝试的是什么,但是您应该将changeOperation
绑定到所选的选项而不是选择吗?
答案 1 :(得分:0)
这是Javascript中常见的Bug。你可以找到很多关于互联网的文章特别是因为事件被解雇两次。我不是Backbone的粉丝,但在jquery你可以试试这样的东西
$(document).on('click', '#task-list li', function(e)
{
alert('Hellow world');
e.stopPropagation();
return false;
});
它肯定是Javascript问题,因为如果你点击谷歌并搜索事件火两次你会看到Angular,Jquery和骨干等所有都在某处发射事件两次甚至三次。所以,它似乎是这背后的javascript。当然,如果您使用Mozilla Developers Network进行搜索,那么您可以看到专家们也这样说过。