簡體   English   中英

為什么主干視圖觸發兩次更改事件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM