利用自定义绑定事件来 传值 实现子传父数据,父传子数据

例子

用$emit  绑定自定义事件 $emit("receive",item) 然后再触发父子的自定义事件 执行函数  v-on:receive="changeValueHandle"    changeValueHandle(value){this.val = value;}  item 就是要传入父级的值,value就是接收 item的

<body>

<div id="app">

<div style="float: left;">

<h2>自定义的下拉框</h2>

<custom-select btn="查询" v-bind:list="list1"></custom-select>

</div>

<div style="float:left;">

<h2>自定义的下拉框2</h2>

<custom-select btn="搜索" v-bind:list="list2"></custom-select>

</div>

</div>

<script>

/*var obj = {

selectShow:false

}*/

//注册组件

Vue.component("custom-select",{

data:function(){

return {

selectShow:false,

val:""

};

},

props:["btn","list"],

template:`<section class="warp">

<div class="searchIpt clearFix">

<div class="clearFix">

<input type="text" class="keyWord" :value="val" @click="selectShow = !selectShow" />

<input type="button" :value="btn">

<span></span>

</div>

<custom-list

v-show="selectShow"

:list="list"

v-on:receive="changeValueHandle"

></custom-list>

</div>

</section>`,

methods:{

changeValueHandle(value){

//alert("我被触发了,值为:"+value);

this.val = value;

}

}

})

Vue.component("custom-list",{

props:["list"],

template:`<ul class="list">

<li v-for="item of list" @click="selectValueHandle(item)">{{item}}</li>

</ul>`,

methods:{

selectValueHandle:function(item){

//在子组件中有交互

//告知父级,改变val的值,需要出发一个自定义事件

this.$emit("receive",item);

}

}

})

new Vue({

el:"#app",

data:{

list1:["北京","上海","杭州"],

list2:["17-02-17","17-02-18","17-02-19"]

}

});

</script>

</body>

原文地址:https://www.cnblogs.com/blccy/p/8215130.html

时间: 2024-10-08 16:15:05

利用自定义绑定事件来 传值 实现子传父数据,父传子数据的相关文章

利用反射绑定事件处理程序(C#)

传统的写法:强类型的情况下 using System;using System.Collections.Generic;using System.Text; using System.Reflection; namespace ConsoleApplication3{ class Program { static void Main(string[] args) { Customer c = new Customer(); c.OnChange += new EventHandler(c_OnC

关于动态生成dom绑定事件失效的原因

之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: 1.事件失效的原因:(1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了 (2)同样,当你使用var aa = document.getElementsByTagName("动态生成的元素");来获取动态生成的元素的时候也是获取不到

Android自定义工具类获取按钮并绑定事件(利用暴力反射和注解)

Android中为按钮绑定事件的有几种常见方式,你可以在布局文件中为按钮设置id,然后在MainActivity中通过findViewById方法获取按钮对象实例,再通过setOnClickListener为按钮绑定事件,如下所示: //1.获取控件 btn = (Button)findViewById(R.id.button1); //2.绑定事件 btn.setOnClickListener(new OnClickListener() { @Override public void onCl

ExtJS要利用观察者模式 去实现自定义的事件

1 // 要利用观察者模式 去实现自定义的事件 2 3 4 //1:由于浏览器他自己能定义内置的事件(click/blur...) 5 // 我们也应该有一个类似于浏览器这样的类,这个类 自己去内部定义一些事件(自定义事件) 6 var Observable = function(){ 7 //承装自己所定义的事件类型的 8 this.events = ['start','stop']; 9 //我们应该设计一种数据类型,这种数据类型就可以去维护自定义事件类型 和 和相关绑定函数的关系,结构如下

JavaScript利用闭包循环绑定事件

我们经常在做前端面试题的时候,会遇到循环绑定事件后,输出打印结果,很多人总是搞不清楚,今天借此机会跟大家梳理一下闭包相关作用. 1.首先我们举一个简单的例子. html部分: <a href="#">首页</a> <a href="#">作品</a> <a href="#">文章</a> <a href="#">工具</a> <

随笔一个dom节点绑定事件

以下利用jquery说明: js中,给一个dom节点绑定事件再平常不过了.这里说下,如果dom经常发生变化的话,给这个dom绑定事件的情况. 比如代码如下: li的节点,绑定了事件:点击会打出来里头的html内容. button点击事件:会生成一个li节点. 1 <html> 2 <head> 3 <meta charset="UTF-8"> 4 </head> 5 <body> 6 <ul class="ul

jQuery绑定事件的四种方式:bind、live、delegate、on

1.jQuery操作DOM元素的绑定事件的四种方式 jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off. 2.必备的基础知识: DOM树 示例,这是在browser环境下的一棵模拟DOM树: 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们没有人为的设置stopPropagation(Moder Browser), cancel

jQuery 1.7以后 jQuery2 新元素绑定事件on替代live

最近做了一个类别动态加载的功能,jQuery版本用的是2.02. 绑定事件jQuery1.7之前用的是live或者是bind.新版的jQuery新增了on方法 由于子类别是动态加载的,默认是不会有事件加载的,要给他绑定一个change事件才能获取他的子类别. 然后定义一个handler,给on方法里面传值,上代码 //定义一个类别改变的事件hander function classChangeHander() { var thisinput = $(this); thisinput.parent

Knockout应用开发指南 第五章:创建自定义绑定

创建自定义绑定 你可以创建自己的自定义绑定 – 没有必要非要使用内嵌的绑定(像click,value等).你可以你封装复杂的逻辑或行为,自定义很容易使用和重用的绑定.例如,你可以在form表单里自定义像grid,tabset等这样的绑定. 重要:以下文档只应用在Knockout 1.1.1和更高版本,Knockout 1.1.0和以前的版本在注册API上是不同的. 注册你的绑定 添加子属性到ko.bindingHandlers来注册你的绑定: ko.bindingHandlers.yourBin