[英]Why backbone view fires change event twice?
我有如下骨干觀點:
var aView = Backbone.view.extend({
events: {
'change #select-opr': 'changeOperation'
},
initialize: function () {},
render: function () {},
changeOperation: function () {
console.log("event triggered.");
}
});
change事件與一個select下拉列表相關聯。
<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'
日志。 表示事件被觸發兩次。 為什么會這樣呢?
有人發現過這個問題嗎? 我正在犯什么錯誤?
我不確定您要實現的目標,但是您應該將changeOperation
綁定到selected選項而不是select嗎?
這是Javascript中的常見錯誤。 您可以在互聯網上找到很多關於SO的文章,這些事件被兩次觸發。 我不是Backbone的粉絲,但是在jquery中您可以嘗試這樣的事情
$(document).on('click', '#task-list li', function(e)
{
alert('Hellow world');
e.stopPropagation();
return false;
});
這絕對是Javascript問題,因為如果您點擊google並搜索兩次事件觸發,您將看到Angular,Jquery和骨架等都觸發事件兩次甚至三次。 因此,似乎它背后是javascript。 當然,如果您使用Mozilla開發人員網絡進行搜索,那么您會看到專家也這么說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.