javascript - Vue中,如何对动态生成的{{{topic.html}}},对其中的 img 标签绑定onclick事件
本文介绍了javascript - Vue中,如何对动态生成的{{{topic.html}}},对其中的 img 标签绑定onclick事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
需求大概是这样的:
<div id="page">
{{{topic.html}}}
</div>
var vm = new Vue({
el: '#page',
data: {
topic: {}
}
});
其中topic.html是就是html字符串,可能会不断更新,每次更新之后,都要对其中的img标签绑定onclick事件,应该怎么做?vue有办法解决吗?
目前是用jquery来实现的:
vm.$watch('topic', function () {
$('#page img').unbind('click').click(function () { // 需要解绑,否则会重复绑定事件
// some...
});
});
这个思路是对的吗?不想引入jQuery
解决方案
推荐使用事件代理
<div id="page" @click="proxyImage">
</div>
var vm = new Vue({
el: '#page',
data: {
topic: {}
},
method: {
proxyImage: function (e) {
if (e.target.tagName.toUpperCase() === 'IMG') {
// do something
}
}
}
});
这篇关于javascript - Vue中,如何对动态生成的{{{topic.html}}},对其中的 img 标签绑定onclick事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文