드롭다운 선택 입력 가능 상자

5645 단어
  • 5
  • 6
  • 7
  • 8
  • 5
  • 6
  • 7
  • 8
(function($){ $.fn.MySelect=function(){ this.each(function(){ var $box=$(this); var $input=$box.find("input.my-select-input"); // var $list=$input.next(); //ul var inputHeight=$input.outerHeight(); // input , ul ul $list.css({"top":(inputHeight)}); $input.focus(function(){ // , ul var $nextUl=$(this).next(); if($nextUl.children().length>0){ $(this).next().show(); } }).bind('input propertychange',function(){ // var $this=$(this); $this.attr("data-id",""); var curText=$this.val(); var $nextUl=$(this).next(); if($nextUl.children().length>0){ $nextUl.find("li").removeClass("choosed"); $nextUl.find("li").each(function(i,item){ var txt=$(item).text(); if(txt===curText){ var v=$(item).attr("data-value"); $this.attr("data-id",v); $(item).addClass("choosed"); } }); } }); // , li $list.off('click', 'li').on('click', 'li', function (e) { var $this = $(this); var value = $this.attr("data-value") || ''; $input.val($this.text()).attr("data-id", value); $this.addClass("choosed").siblings().removeClass("choosed"); $this.parent().hide(); }); }); $(document).click(function (e) { // .my-select-box ul var target=e.target; var $target=$(target); var $parent=$target.closest('.my-select-box'); if($parent.length<1){ // .my-select-box , ul $(".my-select-list").hide(); }else if($parent.length==1){ // my-select-box , var $ul=$parent.find(".my-select-list"); var flag=$ul.is(":hidden"); $(".my-select-list").hide(); if(!flag) $ul.show(); } }); return this; } })(jQuery); $(".my-select-box").MySelect();

좋은 웹페이지 즐겨찾기