70 lines
2.5 KiB
JavaScript
70 lines
2.5 KiB
JavaScript
jQuery.fn.sSelect = function () {
|
|
var selectId = $(this).attr('id');
|
|
var selectIndex;
|
|
$(this).append('<div class="dropselectbox"><h4><span></span><em></em></h4><ul style="display:none"></ul></div>');
|
|
$.each($('#' + selectId + ' > select > option:selected'), function (i) {
|
|
$('#' + selectId + ' > div > h4 >em').empty().append($(this).text());
|
|
});
|
|
$('.dropselectbox').show();
|
|
$('#' + selectId + ' > select').hide();
|
|
$('#' + selectId).bind("click", function (e) {
|
|
selectId = $(this).attr('id');
|
|
if ($('#' + selectId + ' > div > ul').css("display") == 'block') {
|
|
$('.dropselectbox > ul').empty().hide();
|
|
$('.dropselectbox > h4').removeClass("over");
|
|
} else {
|
|
$('#' + selectId + ' > div > ul').empty().toggle();
|
|
$('#' + selectId + ' > div > h4').toggleClass("over");
|
|
setSelectValue(selectId);
|
|
//select option
|
|
$('#' + selectId + ' > div > ul > li').click(function (e) {
|
|
selectIndex = $('#' + selectId + ' > div > ul > li').index($(this)[0]);
|
|
$('#' + selectId + '> select > option').removeAttr("selected");
|
|
$('#' + selectId + '> select > option').eq(selectIndex).attr("selected", "selected");
|
|
setSelectValue(selectId);
|
|
cleadMenu();
|
|
e.stopPropagation()
|
|
})
|
|
.hover(
|
|
function () {
|
|
$('#' + selectId + ' > div > ul > li').removeClass("over");
|
|
$(this).addClass("over");
|
|
},
|
|
function () {
|
|
$(this).removeClass("over");
|
|
}
|
|
);
|
|
$(document).bind("click", cleadMenu);
|
|
}
|
|
e.stopPropagation()
|
|
})
|
|
.bind("selectstart", function () {
|
|
return false;
|
|
})
|
|
.bind("blur", function () {
|
|
cleadMenu();
|
|
});
|
|
}
|
|
|
|
function cleadMenu(){
|
|
$('.dropselectbox > ul').empty().hide();
|
|
$('.dropselectbox > h4').removeClass("over");
|
|
$(document).unbind("click",cleadMenu);
|
|
}
|
|
|
|
function setSelectValue(sID) {
|
|
$.each($('#' + sID + ' > select > option'), function (i) {
|
|
var classStr = "";
|
|
if($(this).attr("class")){
|
|
classStr = " class='" + $(this).attr("class") + "'";
|
|
}
|
|
$('#' + sID + ' > div > ul').append("<li" + classStr +">" + $(this).text() + "</li>");
|
|
});
|
|
|
|
$.each($('#' + sID + ' > select > option:selected'), function (i) {
|
|
$('#' + sID + ' > div > h4 > em').empty().append($(this).text());
|
|
$('#' + sID + ' > div > ul > li').eq(i).addClass("over").addClass("selectedli");
|
|
});
|
|
|
|
}
|