【IMWeb训练营作业】select 组件

使用vue做一个select组件:





<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="vue.js"></script>
</head>


<body>
    <!-- <table> 处理不符合w3c规则的 is="custom-select"
		<tr is="custom-select"><custom-select btn-value="搜索"></custom-select></tr>
	</table> -->
    <div id="app">
        <h2>自定义的下拉框1</h2>
        <custom-select btn-value="搜索" v-bind:list="list1"></custom-select>
        <h2>自定义的下拉框2</h2>
        <custom-select btn-value="呵呵" v-bind:list="list2"></custom-select>
    </div>
    <div id="app1"></div>
    <script type="text/javascript">
    /*var obj = {
    			selectShow:false
    		}*/
    //注册组件 全局
    Vue.component("custom-select", {
        data: function() {
            return {
                selectShow: false,
                val: ""
            };
        },
        props: ["btn-value", "list"],
        template: `
				<section class="warp">
					<div class="searchIpt clearFix">
					 	<div class="clraeFix">
					 		<input type="text" class="keyWord" :value="val"  @click="selectShow = !selectShow" >
					 		<input type="button" :value="btnValue">
					 		<span></span>
					 	</div>
					 <custom-list 
					 v-show="selectShow"
					  :list="list" 
					 v-on:receive="changeValueHandle"
					 >
					 </custom-list>
					 </div> 
				</section>
			`,
        methods: {
            changeValueHandle: function(value) {
            	//alert("wobeihcufa"+ value)
                this.val = value;
            }
        }
    });
    Vue.component("custom-list", {
        props: ["list"],
        template: `
			<ul class="list">
					 	<li v-for= "item in list" @click="selectValueHandle(item)">{{item}}</li>
					 </ul>`,
        methods: {
            selectValueHandle: function(item) {
                //在子组件交互父组件  需要出发一个自定义事件
                //console.log(item);
                this.$emit("receive", item);
            }
        }
    })


    var data = {
        list1: ["北京", "上海", "杭州"],
        list2: ["17-02-16", "17-03-16", "17-03-19"]
    }
    new Vue({
        el: "#app",
        //局部注册 只能在本对象#app下使用
        components: {
            /*"custom-select":`
            <section class="warp">
            	<div class="searchIpt clearFix">
            	 	<div class="clraeFix">
            	 		<input type="text" class="keyWord" value="">
            	 		<input type="button" value="GO">
            	 		<span></span>
            	 	</div>
            	 </div> 
            	 <ul class="list">
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 	<li>1111</li>
            	 </ul>
            </section>
            `*/
        },
        data: data
    });
    </script>
</body>


</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值