點擊複選框如果父母「的onclick」事件被綁定到一個功能被忽略。 我不希望這樣的事情發生:我該怎麼辦呢?我已經剝離了我的代碼來說明問題。複選框,單擊忽略,如果父母已綁定的onclick
HTML:
<div class="container" data-bind="click: someFunction">
Click me: <input type="checkbox" data-bind="checked: selected" />
</div>
JS:
function vm() {
this.selected = ko.observable(true);
this.someFunction = function(){};
}
ko.applyBindings(new vm());
小提琴:here。嘗試點擊複選框:它似乎沒有任何反應(不正確:我會稍後解釋發生了什麼)。
卸下調用someFunction
到容器DIV結果的預期行爲。請參閱示例:here。顯然,這不是解決問題,因爲我需要someFunction
被稱爲好。
我遵循的調試器的代碼,發現如何點擊實際上並沒有忽略,但很長的事件發生鏈,其中最後一個是恢復複選框的值(因此,無效點擊)。
要使用調試器遵循這條產業鏈中,我綁定的複選框單擊事件。
<div class="container">
Click me: <input type="checkbox" data-bind="click: startDebug, checked: selected" />
</div>
隨意打開你的開發工具,並看到預期的行爲是如何,而我們是startDebug函數內實現(但恢復到一個錯誤以後)。撥打調試器電話:here。
剛剛從你的函數返回TRUE;:'this.someFunction =函數(){返回true;};'HTTP ://jsfiddle.net/aYkpL/ – nemesv
它的工作!非常感謝! – Saturnix