我正在嘗試自定義KoGrid的篩選器,以便可以基於「從 - 到」邏輯過濾日期數據的列(KoGrid帶有篩選器的示例可以發現here)。我想要的是顯示一個對話框,當點擊相應的過濾器字段時,包含帶有日期選擇器的「輸入」和「輸入」。處理程序未分配到KoGrid的篩選器字段(Knockout + jQuery)
var vm = {
filterInfo: ko.observable(),
myObsArray: arr
};
ko.applyBindings(vm);
...
$("div.kgheadercell.col5").on("click", "input", function (event) {
$("#popup").dialog("open");
});
這似乎不能正常工作,即一旦我點擊文本字段,對話框就不會顯示。但是,如果我嘗試在Chrome控制檯中輸入代碼的最後一位,則該處理程序將被正確綁定,並且一旦單擊該文本字段,對話框就會出現。
但是,如果我嘗試
$("body").on("click", "input", function (event) {
$("#popup").dialog("open");
});
這個成功增加了處理器因爲我能看到,當我點擊任何(明顯)的文本字段的對話框。
這段代碼發生了什麼事情,以便它刪除或更改處理程序?
是的,這似乎是這種情況。事實上,我可以通過在標題單元格模板中添加attr:{id:\'filterInput \'+ $ data.colIndex}來解決這個問題,然後在$(「body」)。on('click', '#filterInput5',function(){$(「#popup」)。dialog(「open」);});'in'$(document).ready' – Azimuth 2012-04-18 08:04:16