如何在經過knockout數據綁定的DOM元素上添加事件

 經過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();

相關文章
相關標籤/搜索