2015-06-01 46 views
0

目前我的代碼看起來是這樣的:如何在Backbone事件對象中使用變量?

events: { 
    'click .update-url': 'update_url', 
    'click .show-password': 'show_password' 
}, 

但對於觸摸設備我想用touchstart,而不是click作爲事件,因此我想用變量是這樣的:

var click_event = is_touch_device ? 'touchstart' : 'click'; 

... 

events: { 
    click_event + ' .update-url': 'update_url', 
    click_event + ' .show-password': 'show_password' 
}, 

但它不沒有工作。如何以這種方式使用變量,同時仍然在Backbone中使用事件的對象?

回答

1

在任何人的情況下具有相同的問題,我固定這種方式:

events: function() { 
     var _events = {}; 
     _events[click_event + ' a.menu-toggle'] = 'toggle_menu'; 
     _events[click_event + ' a.close-menu, a.authenticate'] = 'close_menu'; 
     _events[click_event + ' ul.menu-links > li.dd'] = 'toggle_sub_menu'; 
     _events[click_event + ' #search-form-lg button'] = 'expand_search'; 
     return _events; 
    }, 
+0

很多在骨幹「屬性」也可以是函數的:[「的'events'屬性也可以被定義爲一個函數返回一個** events **哈希值,以便更容易以編程方式定義事件,並從父視圖繼承它們。「](http://backbonejs.org/#View-delegateEvents)。 –

相關問題