2012-01-16 14 views
8

gelen Sütunlar dışla ister, Cilt tıklayın: O inşaat büyükKnockoutjs - Masa Sıra Böyle bir tablodaki bir satıra bir tıklama bağlamak için nakavt kullanmaya çalışıyorum tıklayın Olay

<tr data-bind="click: $root.selectItem"> 

. Sorun, belirli sütunların tıklama işlemini almasını engellemeye çalıştığım zamandır. Satırımda düzenleme ve silme düğmelerim var ve bunları selectItem tıklama etkinliğini tetiklemelerini istemiyorum. Tüm td'leri bağlamak zorunda mıyım? Tıklama olayına bu şekilde davranmak istiyorum ya da bunu yapmanın daha kolay bir yolu var mı? Burada

Fiddle: http://jsfiddle.net/blankasaurus/WYKEM/

cevap

20

Güncelleme: Orijinal http://jsfiddle.net/kevinobee/Q25ja/2/

: Kevin Obee önerdiği ve bu örnek gösterildiği gibi bağlayıcı click ile bağlayıcı ilave olarak clickBubble: false ekleyerek özel bir bağlama önlemek yapabilirsiniz click bağını tamamlayan ve ek olayların olmasını engelleyen özel bir ciltleme kullanın. http://jsfiddle.net/rniemeyer/xj7Hs/

+2

1 Büyük çözüm:

İşte
ko.bindingHandlers.clickAndStop = { init: function(element, valueAccessor, allBindingsAccessor, viewModel, context) { var handler = ko.utils.unwrapObservable(valueAccessor()), newValueAccessor = function() { return function(data, event) { handler.call(viewModel, data, event); event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); }; }; ko.bindingHandlers.click.init(element, newValueAccessor, allBindingsAccessor, viewModel, context); } }; 

bir örnek: gibi görünebilir! –

+0

Bu çok uygun bir çözümdür. –

İlgili konular