移动端单选插件-jquery

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport">

<style>

* {

margin: 0;

padding: 0;

}

.clear::after {

content: ".";

clear: both;

display: block;

overflow: hidden;

font-size: 0;

height: 0;

}

.singleSelect .singleSelectMask {

position: fixed;

width: 100%;

height: 100%;

top: 0;

left: 0;

background: black;

opacity: .5;

}

.singleSelect .singleSelectContent {

position: fixed;

bottom: 0;

left: 0;

background: white;

width: 100%;

font-size: 12px;

}

.singleSelect .fr {

float: right;

}

.singleSelect .fl {

float: left;

}

.singleSelect .singleSelectButton {

padding: 10px 20px;

border-bottom: 1px solid #ededed;

}

.singleSelect .selectItem {

text-align: center;

padding-top: 10px;

padding-bottom: 10px;

}

.singleSelect .selectItemActive {

background: #81B1FF;

}

.singleSelect .selectItemCon {

height: 200px;

overflow: auto;

}

.select {

height: 40px;

width: 200px;

line-height: 40px;

position: relative;

border: 1px solid black;

}

.select::after {

pointer-events: none;

position: absolute;

right: 10px;

top: 50%;

content: "";

display: block;

width: 20px;

height: 20px;

margin-top: -10px;

background: url("./arrowDown.png") no-repeat center;

background-size: contain

}

</style>

<script src="./js/jquery-3.3.1.min.js"></script>

</head>

<body>

<div >9299</div>

<div >9299</div>

<script>

(function ($) {

$.fn.singleSelct = function (data,fn) {

var that = $(this)

this.each(function () {

var str = '<div class="singleSelect">' +

'<div class="singleSelectMask"></div>' +

'<div class="singleSelectContent">' +

'<div class="singleSelectButton clear">' +

'<span class="fl singleCancel">取消</span>' +

'<span class="fr singleOver" >完成</span>' +

'</div>' +

'<div class="selectItemCon">@@@@</div>' +

'</div> ' +

'</div>';

var itemstr = ""

for (var i = 0; i < data.length; i++) {

itemstr += '<div class="selectItem" value="' + data[i]["value"] + '">' + data[i]

["name"] + '</div> '

}

str = str.replace("@@@@", itemstr);

$(this).click(function () {

$("body").append(str)

if ($(this).attr("value")) {

$(".selectItem[value=" + $(this).attr("value") + "]").addClass(

"selectItemActive")

}

$(".selectItem").click(function () {

$(this).addClass("selectItemActive")

$(this).siblings().removeClass("selectItemActive")

})

$(".singleCancel").click(function () {

$(".singleSelect").remove()

return false

})

$(".singleOver").click(function () {

if ($(".selectItemActive").length == 0) {

$(".singleSelect").remove()

return

}

that.attr("value", ($(".selectItemActive").attr("value")))

fn($(".selectItemActive").attr("value"))

that.html($(".selectItemActive").html())

$(".singleSelect").remove()

return false

})

})

});

};

})(jQuery);

$("#input").singleSelct([{

name: 999,

value: 7755777

}, {

name: 9991,

value: 773777

}, {

name: 9299,

value: 774777

},],function(val){

alert(val)

})

</script>

</body>

</html>