HTML下拉列表的语句,jquery-div模拟下拉列表框(Select)插件

这段代码展示了如何使用JavaScript创建一个模拟下拉框的选择功能。它隐藏了原始元素,创建了一个可点击的div,当点击时显示下拉选项列表。列表项含有点击事件,用于设置选定值并触发回调函数。代码还考虑了不同浏览器的兼容性问题,特别是针对IE8的处理。此外,代码还实现了选中项高亮和页面跳转的功能。
摘要由CSDN通过智能技术生成

$.fn.SimulateSelect = function(data, f) {

var inOb = $(this);

var currentid = $(this).attr("id");

var id = 'divSelect' + currentid;

var width = $(this).width();

$(this).hide();

$(this).parent().append('

$('#a_' + id).addClass("dropselectbox dropdown").css({

'width': width - 10

}).html('').html($(this).val());

$('#a_' + id).click(function(eb) {

$('#b_' + id).show();

try {

eb.stopPropagation();

}

catch (e) {

event.cancelBubble = true;

}

});

var changeleft = false;

// 这里只针对IE8,其他浏览器无此问题

if ($.browser.msie)

changeleft = ($.browser.version) >= 8;

if (changeleft) {

$('#b_' + id).addClass("ullist").css({

'width': width + 9,

'top': $('#a_' + id).offset().top + 34

}).hide();

} else {

$('#b_' + id).addClass("ullist").css({

'width': width + 9,

'top': $('#a_' + id).offset().top + 34,

'left': $('#a_' + id).offset().left

}).hide();

}

$('

var _count = 0;

$.each(eval("("+data.value+")"), function(o, ov) {

_count++;

$("

").html(ov).attr('v', ov).click(function(eb) {

$(inOb).val($(this).attr('v'));

$('#a_' + id).html('').html($(this).html());

$("#" + currentid).val($(this).html());

$('#b_' + id).hide();

if (f)

f($(this).attr('v'), $(this).html());

try {

eb.stopPropagation();

}

catch (e) {

event.cancelBubble = true;

}

}).hover(function() {

/*$('#b_' + id).find('li[class=floatred]').removeClass('floatred'); */

$(this).addClass('floatred');

/*$('#b_' + id).find('li').removeClass("over"); */

$(this).addClass("over");

}, function() {

$(this).removeClass('floatred');

$(this).removeClass("over");

}).click(function(){

$(this).addClass("selectedli");

/* 跳转 */

....这里可以加入选中后页面跳转的动作

}).appendTo($('#b_' + id + ' ul'));

});

// 绑定初始值

if (data.select != "") {

$('#a_' + id).html('').html(data.select);

$("#" + currentid).val(data.select);

}

if (_count > 10 ) {

$('#b_' + id).find("ul").css("height", "500px");

}

var liobj = $('#b_' + id).find('li[v=' + inOb.val() + ']');

if (liobj.html()) {

liobj.addClass('floatred');

$('#a_' + id).html(liobj.html());

}

else {

inOb.val('');

}

$(document).click(function() {

$("#b_" + id).hide();

});

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值