JQ—模拟select下拉列表并传参

JQ—模拟select下拉列表并传参

  <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<style type="text/css">
    			*{
    				padding: 0;
    				margin: 0;
    			}
    			#box{
    				width: 200px;
    				border: 1px solid pink;
    				margin: 100px auto;
    			}
    			#box h3{
    				height: 30px;
    				background: pink;
    				color: #FFF;
    			}
    			#box li{
    				list-style: none;
    			}
    			#box ul{
    				display: none;
    			}
    		</style>
    		<script src="js/jquery-3.4.1.min.js"></script>
    	</head>
    	<body>
    		<div id="box">
    			<h3>请选择</h3>
    			<ul></ul>
    		</div>
    		<script>
    			$.fn.select = function (options) {
    				// 默认值
    				var defaults = [
    					{'name':'111'},
    					{'name':'222'},
    					{'name':'333'},
    					{'name':'444'},
    				]
    				// 继承
    				var ops = $.extend(true,defaults,options);
    				var $li = '';
    				for (var i = 0; i < ops.length; i++) {
    				// 动态创建li
    					$li += '<li>'+ops[i].name+'</li>';
    				}
    				$('#box ul').html($li);
    				var off = true;
    				// 点击空白处关闭下拉列表
    				$(window).click(function () {
    					$('ul').hide();
    					// off = true 是为了不影响$('h3').click的开关操作
    					off = true;
    				})
    				$('h3').click(function () {
    					if (off) {
    						$('ul').show();
    						$('ul li').click(function () {
    							$('h3').html($(this).html());
    						})
    					}else {
    						$('ul').hide();
    					}
    					off = !off;
    					// 阻止冒泡时间 因为$(window)也绑定了同样的事件,不写一直会找到$(window),一直是隐藏状态
    					return false;
    				})
    			}
    			// 调用select方法并传参,下拉列表值会改变
    			$('#box').select([
    				{'name':'北京'},
    				{'name':'上海'},
    				{'name':'广州'},
    				{'name':'深圳'},
    			]);
    		</script>
    	</body>
    </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值