如何在通过knockout数据绑定的DOM元素上添加事件

简介: 通过knockout数据绑定的DOM元素,通过chrome控制台打断点知道,DOM元素会被暂时隐藏,使用document.querySelector()是获取不到的,会显示null,直到数据绑定完成才会出现。

 通过knockout数据绑定的DOM元素,通过chrome控制台打断点知道,DOM元素会被暂时隐藏,使用document.querySelector()是获取不到的,会显示null,直到数据绑定完成才会出现。如果要在这些DOM元素上面绑定事件,必须再数据绑定完成之后添加事件,而且绑定事件和数据绑定的代码必须写在同一个作用域里。不然添加绑定事件不会成功。

 

 案例 一段AJAX调用成功后绑定数据,并且添加事件的代码(ajax已被封装)

var ViewModel = {

      availableCashData: ko.observable(),

      assetInfoByCodeData: ko.observable()

}

ko.applyBindings(ViewModel);

 

function getAssetInfoByCode() {

      var dataParams = {

           "MethodAlias": "App_GetAssetInfoByCode",

           "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();

 

 

 

相关文章
|
2月前
|
JavaScript 前端开发 容器
用HTML DOM实现有条件地渲染网页元素(上)
用HTML DOM实现有条件地渲染网页元素(上)
|
2月前
|
存储 JavaScript 前端开发
用HTML DOM实现有条件地渲染网页元素(下)
用HTML DOM实现有条件地渲染网页元素(下)
|
5天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
5天前
|
JavaScript 前端开发
|
28天前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
40 4
|
5天前
|
JavaScript 前端开发 API
|
30天前
|
JavaScript
在Vue中获取DOM元素的实际宽高
【10月更文挑战第2天】
191 1
|
2月前
|
JavaScript 前端开发
JavaScript HTML DOM 事件
JavaScript HTML DOM 事件
22 5
|
2月前
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
26 2
|
24天前
|
JavaScript 前端开发 API
深入理解jQuery:高效DOM操作与事件处理
【10月更文挑战第11天】深入理解jQuery:高效DOM操作与事件处理
14 0