經過knockout數據綁定的DOM元素,經過chrome控制檯打斷點知道,DOM元素會被暫時隱藏,使用document.querySelector()是獲取不到的,會顯示null,直到數據綁定完成纔會出現。若是要在這些DOM元素上面綁定事件,必須再數據綁定完成以後添加事件,並且綁定事件和數據綁定的代碼必須寫在同一個做用域裏。否則添加綁定事件不會成功。html
案例 一段AJAX調用成功後綁定數據,而且添加事件的代碼(ajax已被封裝)ajax
var ViewModel = {chrome
availableCashData: ko.observable(),app
assetInfoByCodeData: ko.observable()spa
}code
ko.applyBindings(ViewModel);htm
function getAssetInfoByCode() {事件
var dataParams = {作用域
"MethodAlias": "App_GetAssetInfoByCode",get
"Parameter": [windcode]
};
ajaxRequest(ajaxUrl, dataParams, function(data) {
if(data && data.State == 0 && data.Data) {
var assetInfoByCode = data.Data;
ViewModel.assetInfoByCodeData(assetInfoByCode);
//點擊基金名稱從新搜索功能
var fundNameChange = document.querySelector(".fundname-change");
fundNameChange.addEventListener("tap", function() {
gotoUrlWebView('search_page.html?id=' + competitionId+'&origin='+originPage);
});
}
})
};
getAssetInfoByCode();