`
ice-cream
  • 浏览: 320661 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

动态过滤填充input框和用弹出层替换select框

CSS 
阅读更多

左图是用keydown事件写的动态过滤填充input框

$(document).ready(function(){
	$("input.click").click(function(){$("ul").hide();});
	$("input.click").keydown(function(index){
		position(this);
		$("ul").show();
		$("ul li").each(function(){
			hoverEvent(this);
			$(this).click(function(){
				$("input.click").val("");
				textLi = $(this).text();
				$("ul").hide();
				$("input.click").val(textLi);
			});
		});
	});
});

 

右图是用弹出层替换select框

$(document).ready(function(){
	$("div.click").click(function(index){
		position(this);
		$("ul li:first").addClass("active");
		$("ul li").each(function(){
			if($("div.click span.text").text() == $(this).text()){
				$("ul li").removeClass("active");
				$(this).addClass("active");
			}
			hoverEvent(this);
			$(this).click(function(){
				$("div.click span.text").text("");
				textLi = $(this).text();
				$("ul").hide();
				$("div.click span.text").text(textLi);
			});
		});
	});
});

 

通用的方法

//弹出框定位
function position(obj){
	var leftMargin = $(obj).offset().left;
	var topMargin = $(obj).offset().top;
	leftMarginPX = leftMargin + "px";
	topMarginPX = (topMargin + 25) + "px";
	$("ul").css({left:leftMarginPX,top:topMarginPX});
}

//鼠标hover高亮
function hoverEvent(obj){
	$(obj).hover(
		function(){
			$(obj).addClass("active");
		},
		function(){
			$(obj).removeClass("active");
		}
	);
}

//上下键切换行
var currentLine = -1;
$(document).keydown(function(e){
	if(e.keyCode == 38){
		currentLine--;
		changeItem();	
	}
	else if(e.keyCode == 40){
		currentLine++;
		changeItem();	
	}
});
function changeItem(){
	$("ul li").removeClass("active");
	var lengthNum = $("ul").children("li").length;
	if(currentLine < 0){
		currentLine = lengthNum - 1; 
	}
	if(currentLine == lengthNum){
		currentLine = 0; 
	}
	$("ul li:nth-child("+(currentLine+1)+")").addClass("active");
}  
 
  • 大小: 74.5 KB
分享到:
评论
2 楼 clampcatfish 2009-01-11  
很好很强大~~~ 收下了~~
1 楼 曾经地迷茫 2008-12-24  
好啊!! 

相关推荐

Global site tag (gtag.js) - Google Analytics