<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.s-hidden {
visibility: hidden;
padding-right: 10px;
}
.select-box {
cursor: pointer;
display: inline-block;
position: relative;
font: normal 11px/22px Arial, Sans-Serif;
color: black;
border: 1px solid #ccc;
}
.styledSelect {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: white;
padding: 0 10px;
font-weight: bold;
}
.styledSelect:after {
content: "";
0;
height: 0;
border: 5px solid transparent;
border-color: black transparent transparent transparent;
position: absolute;
top: 9px;
right: 6px;
}
.styledSelect:active,
.styledSelect.active {
background-color: #eee;
}
.options-box {
display: none;
position: absolute;
top: 100%;
right: 0;
left: 0;
z-index: 999;
margin: 0 0;
padding: 0 0;
list-style: none;
border: 1px solid #ccc;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
background-color: white;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.options-box li {
padding: 0 6px;
margin: 0 0;
padding: 0 10px;
border-bottom: 1px solid #ededed;
}
.options-box li:hover {
background-color: #39f;
color: white;
}
</style>
</head>
<body>
<select id="selectbox1">
<option value="aye">Aye</option>
<option value="eh">Eh</option>
<option value="ooh">Ooh</option>
<option value="whoop">Whoop</option>
</select>
<select id="selectbox2">
<option value="" disabled selected>select a box...</option>
<option value="month">Month…</option>
<option value="january">January</option>
<option value="february">February</option>
<option value="march">March</option>
<option value="april">April</option>
<option value="may">May</option>
<option value="june">June</option>
<option value="july">July</option>
<option value="august">August</option>
<option value="september">September</option>
<option value="october">October</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
<script src="../jquery.js"></script>
<script>
var slectStylesPlugin = (function() {
var selectValues = {};
$('select').each(function() {
// Cache the number of options
var $this = $(this),
numberOfOptions = $(this).children('option').length;
console.log($(this).children('option').attr('disabled'));
// Hides the select element
$this.addClass('s-hidden');
// Wrap the select element in a div
$this.wrap('<div class="select-box"></div>');
// Insert a styled div to sit over the top of the hidden select element
$this.after('<div class="styledSelect"></div>');
// Cache the styled div
var $styledSelect = $this.next('div.styledSelect');
// Show the first select option in the styled div
$styledSelect.text($this.children('option').eq(0).text());
// Insert an unordered list after the styled div and also cache the list
var $list = $('<ul />', {
'class': 'options-box'
}).insertAfter($styledSelect);
// Insert a list item into the unordered list for each select option
for (var i = 0; i < numberOfOptions; i++) {
$('<li />', {
text: $this.children('option').eq(i).text(),
rel: $this.children('option').eq(i).val()
}).appendTo($list);
}
// Cache the list items
var $listItems = $list.children('li');
$styledSelect.click(function(e) {
e.stopPropagation();
$('div.styledSelect.active').each(function() {
$(this).removeClass('active').next('ul.options-box').hide();
});
$(this).toggleClass('active').next('ul.options-box').toggle();
});
if ($(this).children('option').attr('disabled')) {
$listItems.each(function(index, val) {
if (index == 0) {
$(this).attr('disabled', 'disabled');
$(this).css({
'background-color': '#ccc',
"pointer-events": "none",
"color": "white",
"cursor": "pointer"
});
}
});
}
$listItems.click(function(e) {
if (!$(this).attr('disabled')) {
$list.hide();
} else {
return;
}
e.stopPropagation();
$styledSelect.text($(this).text()).removeClass('active');
$this.val($(this).attr('rel'));
// select option add select
$('#' + $this.attr('id')).find("option[value=" + $this.val() + "]").attr("selected", 'selected');
// This is selct id and choose value
selectValues[$this.attr('id')] = $this.val();
});
// Hide the ul when user click the outside
$(document).click(function() {
$styledSelect.removeClass('active');
$list.hide();
});
});
return {
selectValues: selectValues
}
}());
</script>
<script>
</script>
</body>
</html>