不想给所有的 a 都加上 data-bind="click:clickFN" 所以想用冒泡的方式实现
但是像如下这样:如果点击到 i 或 span 标签 那就出问题了 请问大神怎么解决???
<div id="div" data-bind="click:clickFn">
<a class="item" id="1">
<i></i>
<span>链接1</span>
</a>
<a class="item" id="2">
<i></i>
<span>链接2</span>
</a>
<a class="item" id="3">
<i></i>
<span>链接3</span>
</a>
</div>
var viewModel =function() {
var self = this;
self.clickFn = function(item,event){
// 通过事件源判断
var e = event || window.event;
var src = e.target || e.srcElement;
// to do
}
};
var view = new viewModel();
ko.applyBindings(view);
用foreach
循环生成a
标签
直接用foreach循环生成a标签
在外层绑定 click 事件,在事件监听器中检查下 event.target 是不是 a 元素。