使用 JQuery ,可以捕获页面中任何项目的单击事件,如下所示。
$(document).click(function(event){
// event.target is the clicked element object
});
如何对 Vue.js 做同样的事情?
原文由 asankasri 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 JQuery ,可以捕获页面中任何项目的单击事件,如下所示。
$(document).click(function(event){
// event.target is the clicked element object
});
如何对 Vue.js 做同样的事情?
原文由 asankasri 发布,翻译遵循 CC BY-SA 4.0 许可协议
MU提供的答案 是正确且有效的。
但是,如果您不喜欢弄乱您的模板(例如,不要在其中放置大量事件处理程序)或者您的 Vue 应用程序只是较大应用程序的一小部分,那么手动注册事件处理程序也是完全可以接受的。
要 以 Vue 的方式在脚本中 添加全局事件处理程序,您应该在 mount 中注册它们并在 beforeDestroy 钩子 中删除它们。
简短的例子:
var app = new Vue({
el: '#app',
mounted: function () {
// Attach event listener to the root vue element
this.$el.addEventListener('click', this.onClick)
// Or if you want to affect everything
// document.addEventListener('click', this.onClick)
},
beforeDestroy: function () {
this.$el.removeEventListener('click', this.onClick)
// document.removeEventListener('click', this.onClick)
},
methods: {
onClick: function (ev) {
console.log(ev.offsetX, ev.offsetY)
}
}
})
原文由 Bengt 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5k 阅读
<body>
之后创建 div 作为顶部节点<div id='yourMainDiv' @click='yourClickHandler'>
<script>
部分使用它: