vue.js 新增树节点怎么取到当前点击的节点

如何用js获取所点击的节点的值?【javascript吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:144,936贴子:
如何用js获取所点击的节点的值?收藏
javascript培训,就业薪资高,发展前景好,零基础入学,60天入门到精通.500强名师面授,理论+实战“双师”课程,免费试学,学员尊享-名企入职通道.先就业后付款!
当点击上面的名字(红框所选中的)时,会弹出一个新的div(层)黄色框所选中的部分
点击不同的名字(红框部分),新div上会显示相应的内容,就像是详细介绍一样……问题是……………………………………………………………如何在这个新的div上,显示你所点击的名字的id值啊?
求高人指点啊……
弱弱的问一句:楼主你的弹出框是怎么做的??要显示你所点击的名字的id值可以直接在click函数里添加啊,可以用this.id啊~~话说我不知道你的弹出框怎么做的………………
求大神来帮忙啊……
简单的弹出框效果,居中网页。全兼容:htt p://w /thread-.html
都喜欢在网上找代码,找了又看不懂,改都改不了,何必呢。
进来的留个言再走吧……
自己顶一下……
达内javascript,内容覆盖html5/CSS3/JavaScript/JQuery/Bootstrap等前端技术;达内javascript,让你快速成为web前端开发工程师,入职互联网公司,薪资翻倍!
不放代碼的話, 那就好像家裡有電腦壞了找人救可是你又不讓大家進屋, 也不把電腦拿出來, 我們也很難辦的喔.
这是58同城上的一个页面的截图,鼠标放在不同的名字上,弹出个新层,上面显示不同的内容。这个效果怎么做的,你能给我简单叙述下吗?另外,新弹出的层可以用不同的css样式吗?
这个弹出框的效果可以有很多方法实现,我给你个最简单的思路:首先在HTML里内置一个div,将它设置为不可见,然后给你红框里的元素(我假设为p元素)注册onmouseover和onmouseout事件,onmouseover里面设置这个div为可见,当然,在div可见时对应每一个p元素都要有详细的说明,应该用Ajax向服务器请求数据填充到div里。在onmouseout里设置这个div为不可见,清除div里填充的数据。不知道你用不用JQuery,我感觉比JS原生代码要好写一点,还可以排错。而且Ajax用起来也简单。PS:那个58同城的效果在哪个网址看?还有你后台用的什么语言?PHP?
说了些什么都没听明白,也不知道你取id干嘛,通常去id用$("#id")不知道你要的是哪个也不知你能看懂了不
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
登录百度帐号推荐应用vuejs响应用户事件-如点击 - 简书
vuejs响应用户事件-如点击
,介绍了如何通过vue.js实现绑定列表数据,这篇文章将在上一篇的基础介绍如何响应用户的点击事件。
页面上的列表原先有3个,我们想点击一次添加一条记录,也可以在头和尾删除数据;
我们也可以删除我们想删除的任意一行记录;
如果是用传统的jquery操作,页面中js会特别多,而且操作也很麻烦。
这里用vue.js就非常简单。
我们先看页面效果:
页面初始化.png
末尾增加一项.png
删除项.png
再来看代码:
&!DOCTYPE html&
&html lang="en"&
&meta charset="UTF-8"&
&meta name="viewport" content="width=device-width, initial-scale=1"&
&meta http-equiv="x-ua-compatible" content="ie=edge"&
&title&demo04&/title&
&link rel="stylesheet" href="../css/base/bootstrap.min.css"&
&link rel="stylesheet" href="../css/base/common.css"&
&div class="container mt15" id="ul-lists"&
&ul class="list-group" v-for="item in items"&
&li class="list-group-item"&
&span class="label label-default label-pill pull-right" v-on:click="removeTodo($index)"&×&/span&
{{item.text}}&{{$index}}
&p class="mt15"&
&button type="button" class="btn btn-info" v-on:click="addAtLast($index)"&在末尾增加一项&/button&
&button type="button" class="btn btn-secondary" v-on:click="deleteAtTop($index)"&删除第一项&/button&
&button type="button" class="btn btn-secondary" v-on:click="deleteAtBottom($index)"&删除最后一项&/button&
&script src="../js/base/vue.js"&&/script&
&script src="../js/base/jquery.min.js"&&/script&
&script src="../js/base/bootstrap.min.js"&&/script&
el: '#ul-lists',
{ text: 'item' },
{ text: 'item' },
{ text: 'item' }
methods: {
removeTodo: function (index){
this.items.splice(index, 1)
addAtLast: function(index){
this.items.push({ text: 'item' })
deleteAtTop: function(index){
this.items.shift();
deleteAtBottom: function(index){
this.items.pop();
在上面的代码中,我们主要是通过方法来管理Items这个数据,从而实现页面上的交互。
splice、push、shift、pop的用法和在js中一样。
因为这里的例子都不难,就不详细说了,大家可以照着上面的代码试试。
每个人有每个人的选择,不要随意评价。个人站点:/
掘金主页:https://gold.xitu.io/user/56cc5478816dfa
python博客:http://blog.csdn.net/pythonyin?viewmode=contents关注社区微信公众号: PMvideo
Vue.js动画在项目使用的两个示例
欢迎大家关注,我们将持续在博客园为大家推荐技术精品文章哦~
李萌,16年毕业,Web前端开发从业者,目前就职于腾讯,喜欢node.js、vue.js等技术,热爱新技术,热爱编程。
vue.js的文档对于动画的使用做了很多的介绍,不熟悉的小伙伴可以先。
下面就进入正题啦!
第一个动画示例:
这其实是一个很常见的弹出层效果,鼠标点击按钮切换弹出层的显示,点击其他区域弹出层消失,用javascript绑定事件可能几行代码就搞定了,但是vue.js的状态驱动模式和javascript的事件驱动模式是不同的,下面是使用vue.js的实现方式:
鼠标点击button会切换一个布尔值show,用show来控制弹出层的显示,而包裹着&transition&标签的弹出层在show的状态改变时就会触发动画,下面就可以用css3写一个弹出层的动画:
关于不同的过渡状态对应的css声明,官网上是这样解释的:
v-enter: 定义进入过渡的开始状态。在元素被插入时生效,在下一个帧移除。
v-enter-active: 定义进入过渡的结束状态。在元素被插入时生效,在 transition/animation 完成之后移除。
v-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除。
v-leave-active: 定义离开过渡的结束状态。在离开过渡被触发时生效,在 transition/animation 完成之后移除。
相对于jQuery来说,vue.js的动画效果完全带来了一种全新的体验。
那么如何点击其他区域让弹出层消失呢?
首先想到的是直接阻止按钮和弹出层的事件冒泡,然后给document绑定事件让弹出层消失。但是显然这种方法太简单粗暴了,使用的场景也很苛刻,要求页面中只有一个弹出层效果才行,虽然不建议使用,但是也提供了一种思路。
然后想到可以检验事件的target,如果target不是按钮和弹出层就可以让弹出层消失,这也是用jQuery 的常用写法,那么关键点就是用vue.js定位到按钮和弹出层,vm.$refs可以解决这个问题,使用 ref 为子组件指定一个索引 ID,在 JavaScript 中就可以直接访问子组件了。下面是实现过程:
这里定义了一个mouted,也就是说在该vue实例绑定节点之后触发,在document绑定的事件里判断是不是按钮和弹出层,如果是则返回,否则将show的状态设置为false。
在写完这个之后我也去网上找了找有没有更好的思路可以实现,后来阅读了一下大名鼎鼎的vue.js框架这部分的源码,发现它也是这个思路实现了。大家有好的实现思路欢迎交流哈!
第二个动画示例:
第二个实例是关于标签页切换的,先看一下效果:
这也是一个很常见的交互效果,以往正常的javascript写法是给各个按钮绑定事件来切换不同的层,当然也可以用纯css写,给上面的三个切换的层分别添加一个单选按钮的兄弟节点,再用绝对定位把单选按钮定位在三个button上面,这样就可以用:checked伪类来单选按钮的兄弟元素,即对应的不同的层,我简单的写了一下DOM结构,大概就是这样:
那么用vue.js实现上述的效果,其实也有两种途径,一种使用vue-router,vue-router是vue.js的一个路由组件,在单页面应用中非常非常流行,如果切换的层数据量非常大的话,比如每个层都要有服务器进行大量的数据交互,那么强烈建议使用vue-router,因为vue-router在每次切换路由的过程中,都会自动销毁(destroyed)前面的组件,这样在频繁的操作中页面也不会卡,而且vue-router也定义了页面切换过程中的。
如果数据量并不复杂的话,可以直接通过vue.js定义切换状态来切换不同的层。
首先先把template和css写好:
其中introduce、chatbar、videobar分别代表三个需要跟随button切换的组件,接下来就可以给vue.js的button节点绑定事件来操控点击状态:
点击不同的button,会让active的状态改变,同时这个状态会作用到button上面,比如让被点击的button有个高亮的效果等等。
那么如何让active的状态作用到弹出层呢?其实定义一个computed函数就可以了:
大功告成!
好了,就说到这里啦,第一次发这么长的文章,贴出来的代码可能不能面面俱到,如有不足之处,欢迎各位大神们指教,给点个赞吧啦啦啦啦!
此文已由作者授权腾讯云技术社区发布,转载请注明
原文链接:
获取更多腾讯海量技术实践干货,欢迎大家前往
笔记社区是一个面向中高端IT开发者、程序员的知识共享社区,通过网络抓取与文章分类总结,由专家为用户提供高质量的专题文章系列。
原文链接:/qcloud1001/p/6728142.html
声明:所有文章资源均从网络抓取,如果侵犯到您的著作权,请联系删除文章。联系方式请关注微信公众号PMvideo【锤子视频-程序员喜欢的短视频】,笔记社区开发者交流群 。
关注微信公众号:PMvideovuejs获取事件对象并传给子组件 - 跟谁学
搜索你想学的科目、老师试试,例如“舞蹈”搜索无锡
&&vuejs获取事件对象并传给子组件先贴代码吧! html:
弹出气泡卡片
子组件: ;(function (Vue, window) {
var template = `
{{content}}
var popover = Vue.extend({
type: Boolean,
default: false
type: String,
default: '标题'
content: {
type: String,
default: '内容'
target: {}
window.popover = popover
})(Vue, window) js: var btn = new Vue({
el: '#app',
show: false,
pop_title: '',
pop_content: '',
pop_target: {}
methods: {
popShow: function (e) {
this.pop_title = '我是标题'
this.pop_content = '我是一段提示内容'
this.pop_target = e
this.show = true
popHide: function () {
this.show = false
components: {
'v-popover': popover
}) 现在我来讲下问题:我在 popShow 函数中把 e 打印出来是一个触发事件的对象,如下图 但是在传给子组件后,只留下了MouseEvent,并不是整个对象,如下 这个原因是什么,有什么解决办法吗?我现在暂时的解决办法是把需要的值从事件对象里面把值抽出来再传进子组件使用。BingqiChenSevenOutman
父组件监听事件采用capture方式,并且事件处理函数return true的话,事件就会继续传递给子组件
相关问题大家都在看最新提问
关注我们官方微信关于跟谁学服务支持帮助中心

我要回帖

更多关于 vue.js 新增树节点 的文章

 

随机推荐