javascript - 如何使用 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 中检索到的内容。
提前致谢。
解决方案
单击处理程序中的第二个参数将是单击事件。从中您可以获取目标元素及其相关内容。
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>
推荐阅读
- java - 通过 logback 设置 Undertow 日志级别
- textures - 如何在 Maya 中制作带有外部纹理边框的可平铺纹理?
- docker - 从主机访问 docker 容器的目录
- javascript - 如何计算mousemove上水平滚动的滚动偏移量?
- visual-studio-code - VS Code 选项卡选择另一个按钮,而不是在代码中添加一个选项卡或 4 个空格
- amazon-ec2 - 其他实例管理控制台的最佳 EC2 实例类型
- loops - Pyspark - IndentationError:预期使用 Cloudera 虚拟机的缩进块
- reactjs - 反应:CSS类名导入不起作用
- apache-spark - 在 Windows 10 中启动 Spark Thrift 服务器
- javascript - Document.getElementById(...) 在 Laravel 视图中为 Null