首页 > 解决方案 > 如何使用 data-bind 属性获取 dom 元素作为参数 - 在我的 javascript 代码中进行操作?

问题描述

我想在使用 data-bind 属性 click 方法时将 li 元素的内容作为参数传递给我的函数。例如

 <ul>
     <li data-bind='click: titleClick(argument)'>(CONTENT)</li>
 </ul>

将什么而不是参数传递给我的 titleClick 函数?这是我在js文件中的处理

var MapProcess = function(){
    this.titleClick = function(titleName){
        for (var i = 0; i<model.markers.length; i++){
            if (titleName == model.markers[i].title){
                var infoWindow = new google.maps.InfoWindow({          
                });
                infoWindow.setContent(model.markers[i].buborek)
                infoWindow.open(map, model.markers[i]);
                break;
            };
        };
    };
};

我希望上面函数中的参数 titleName 等于从 html 中检索到的内容。

提前致谢。

标签: javascripthtmldata-bindingknockout.js

解决方案


单击处理程序中的第二个参数将是单击事件。从中您可以获取目标元素及其相关内容。

https://knockoutjs.com/documentation/click-binding.html

var MapProcess = function() {
  this.titleClick = function(data, event) {
    console.log(event.target.textContent);
  }
}

ko.applyBindings(new MapProcess());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<ul>
  <li data-bind='click: titleClick'>(CONTENT)</li>
</ul>


推荐阅读