2017-06-29 64 views
1

在我的網頁我想跟蹤至極按鈕,用戶在obdervable點擊:設置觀察到的值單擊

self.action = ko.observable(); 

我可以編寫一個函數setAction與每個按鈕上點擊一個參數調用它,東西像這樣:

self.setAction = function (action) { 
    self.action(action); 
} 

但我不知道是否有辦法做到這一點,而不必每次調用setAction功能?

+0

[淘汰賽事件代表團(http://www.knockmeout.net/2012/11/revisit-event-delegation-in-knockout-js.html) –

回答

2

你可以做到這一點在線:

<button type="button" class="btn" data-bind="click: action.bind($data, 'btn-name')">btn-name</button> 

或通過實際的按鈕對象

<button type="button" class="btn" data-bind="click: action.bind($data, this)">btn-name</button> 

或者,如果您的問題是,你必須每次都寫這個點擊事件,你可以向每個按鈕添加一個類並添加一個事件偵聽器來設置該操作。

<button type="button" class="btn actionBtn">btn-name</button> 

$(".actionBtn").click(function(){ 
    var btn = $(this); 
    viewModel.action(btn); 
}); 
+0

你是說像使用jQuery的屬性?像按鈕的ID一樣。 $(this).attr('id') –

+0

'btn'的值看起來像'div#cancel.tab.actionBtn.tabSelected'有沒有辦法只得到這個名字? – user3378165

+0

關於如何實現這一點的任何想法? – user3378165