如何在vue中给过滤器里新增的节点,添加触发事件
vue如何给过滤器动态添加的节点,添加触发事件。如下代码问题:
template:
// template
<p @click="goMedalClick($event)" v-html="$options.filters.iconFilterTextColor(icon.url, i18n.t3)"></p>
过滤器:
// 过滤器
Vue.filter('iconFilterTextColor', function (value, text) {
if (value.indexOf('XXX') !== -1) {
value = value.replace(`XXX`, `<img class="music-img" src="${icon}">`);
}
if (value.indexOf('YYY') !== -1) {
value = value.replace(`YYY`, `<mark>${text}</mark>`);
}
return value
})
这时候,如何给过滤器新增下的 mark节点添加触发事件,当用户点击mark时,事件触发。
解决方法:**
methods:
// methods
goMedalClick (event) {
console.log('event.target,', event.target)
if (event.target.nodeName === 'MARK' || event.target.nodeName === 'mark') {
this.goMedal(this)
}
}
通过事件传入的 e v e n t 参 数 , 获 取 event参数,获取 event参数,获取event节点下的mark,然后给予事件函数。