为了账号安全,请及时绑定邮箱和手机立即绑定

求大神分享一个通过vue.js实现的点击鼠标右键,生产菜单列表的demo或思路,谢谢~

求大神分享一个通过vue.js实现的点击鼠标右键,生产菜单列表的demo或思路,谢谢~

墨色风雨 2018-09-15 10:08:10
1.使用到vue.js;2.考虑到dom操作,可以引入jquery;3.可以考虑结合jquery插件,比如bootstrap-menu实现该效果;4.需要有正常的右键展开菜单,再点击菜单外区域能隐藏;5.需要与其他vue语句结合使用无冲突,比如v-for等;6.如果有现成的或值得参考的,也可以分享下地址.另外我再阐述下我在实现一个类似需求中遇到几个问题:1.用vue渲染出列表不是问题很正常,但不太清楚为什么我对生vue列表渲染的li元素用jquery选择器得到的返回结果的length为0,明明页面上都显示有3个了;2.我尝试在vue的生命周期created,ready等console.log($('#testList li')),结果created的返回有结果,ready的没有,感觉很神奇,是不是我对vue的生命周期理解不对?不是ready的时候已经写进了document吗?3.无论console.log的结果如何,当我结合bootstrap-menu这个插件,比如这么写://js代码://html代码:                //contextmenu如上,contextmenu方法并未生效,感觉没有调用过,why?如果需要结合vue,我该怎么写,才能让列表渲染生产的每个li能通过右键生产菜单?
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

多谢各位的回复,目前这个问题已经解决了,说一下我的解决方法:
首先,要知道下vue的主旨思想,他是一个MVVM框架,MVVM的思路是VM驱动V,所以不是将重心放在DOM节点(意味着动词,这是个命令式UI)的操作上,而是一组DOM节点它是否存在于那个地方,由一个VM属性来确定(意味着声明式编程,话说这个是不是应该叫谓词)。
然后,我的解决方法是,使用了$nextTick(function () {}),说明如下:

https://img1.sycdn.imooc.com//5bd03c580001bd7e05550519.jpg

另外,vuejs确实应该是自己的一套,再次引入jq去操作,有点违背它的本意,只是项目其他地方用到jq的地方太大,没法一下换掉吧

查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 1810 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信