> 웹 프론트엔드 > JS 튜토리얼 > jQuery 기반 자동 완성 플러그인_jquery

jQuery 기반 자동 완성 플러그인_jquery

WBOY
풀어 주다: 2016-05-16 18:11:04
원래의
1158명이 탐색했습니다.

下面是html测试代码:

复system代码 代码如下:



<머리>
자동 완성





<본문>
<입력값="입력" />

<입력값="입력" />

<입력값="입력" />

<입력값="입력" />




下side是jQuery插件:
复代码 代码如下:

;(function($){
/* 플러그인 */
$.fn.autoComplete=function(o){
if(o.ajax) o.ajax=$. 확장({ url:'', dataType:'json', async:true }, o.ajax||{})
o.elemCSS=$.extend({ focus:{'color':'#f00 '}, Blur:{'color':'#000'} }, o.elemCSS||{});
o=$.extend({
source:null,/* 일치할 배열을 비공개합니다. */
ajax:{},/* Ajax 조건을 제공하세요. 소스가 존재하는 경우 이 매개변수는 유효하지 않습니다. */
input:'input',/* 입력 상자 선택기를 제공하세요 */
팝업 :'ul',/* 팝업 상자 선택기를 제공합니다. 이는 HTML의 ul 요소여야 합니다. */
elemCSS:{}/* 팝업 상자 항목의 초점 및 흐림 CSS 객체를 제공합니다. */
},o||{});
var handler=(function(){
var handler=function(e,o){ return new handler.prototype.init(e,o); };
handler.prototype={
e:null, o:null, 타이머:null, show:0, $input:null, $popup:null,
init:function(e,o){
this.e=e;
this.o=o;
this.$input=$(this.o.input,this.e)
this.$popup=$(this.o .popup,this.e);
this.initEvent();
},
match:function(quickExpr,value,source){
for(var i in source){
if( value.length>0 && QuickExpr.exec(source[i])!=null )
this.$popup.append('
  • ' 소스 [i] '
  • ');
    }
    if($('li a',this.$popup[0]).length){ this.$popup.show(); }else{ this.$popup.hide(); }
    },
    fetch:function(ajax,search,quickExpr){
    var that=this;
    $.ajax({
    url: ajax.url 검색,
    dataType: ajax.dataType,
    async: ajax.async,
    error: function(data,es,et){ 경고('오류'); },
    성공: function(data){ that.match(quickExpr,search,data) }
    });
    },
    initEvent:function(){
    var that=this;
    this.$input.focus(function(){
    var value=this.value, QuickExpr=RegExp('^' value,'i'), self=this;
    that.timer=setInterval (function(){
    if(value!=self.value){
    value=self.value;
    that.$popup.html('');
    if(value!=' '){
    quickExpr=RegExp('^' value);
    if(that.o.source) that.match(quickExpr,value,that.o.source)
    else if(that. o.ajax) that.fetch(that.o.ajax,value,quickExpr)
    }
    }
    },200)
    }).blur(function(){
    clearInterval(that.timer);
    var current=-1;
    var len=that.$popup.find("li a").length-1; .$popup[0]).click(function(){
    that.$input[0].value=$(this).text();
    that.$popup.html(''). hide();
    }).focus(function(){
    current = $(this).parent().index();
    $(this).css(that.o.elemCSS. 초점);
    }).blur(function(){
    $(this).css(that.o.elemCSS.blur);
    }); that.$popup[0]).keydown(function(event){
    if(event.keyCode==40){
    current ;
    if(current<0) current=len;
    if(current>len) current=0;
    that.$popup.find("li a").get(current).focus();
    }else if(event.keyCode==38){
    현재--;
    if(현재>len) 현재=0;
    if(현재<0) 현재=len;
    that.$popup.find("li a").get(current).focus();
    }
    });
    }).keydown(function(event){
    if(event.keyCode==40){
    that.$popup.blur().find("li a").get(0) .focus();
    }
    });
    $(this.e).hover(function(){ that.show=1; },function(){ that.show=0; });
    $(document).click(function(){ if(that.show==0){ that.$popup.hide(); } });
    }
    };
    handler.prototype.init.prototype=handler.prototype;/* JQuery 스타일 */
    반환 핸들러;
    })();
    return this.each(function(){ handler(this,o); });
    };
    /* 호출 */
    $(document).ready(function(){
    $(".autoComplete").autoComplete({
    source:[123,1234,43563,12346, 3464564,3454,7567,956,456,9383,893,999],
    //ajax:{ url:'./php/fetch.php?search=', dataType:'json', async:false },
    elemCSS:{ 초점:{'color':'#0f0'}, 흐림:{'color':'#f00'} }
    })
    });
    /* 결론 */
    })(jQuery); <# 🎜>


    复主代码

    代码如下:

    class DataFetch{
    private $conn, $rs;
    function __construct(){
    $this->conn = mysql_connect("localhost","root","pwd") or die("호스트에 연결할 수 없습니다~");
    mysql_select_db("studentinfo",$this->conn) or die("데이터베이스를 선택할 수 없습니다~");
    }
    공용 함수 data_list($s){
    $this->rs=mysql_query("sno가 '$s%'와 같은 학생에게서 sno 선택") 또는 die("가져올 수 없음 ~");
    $dataList=배열();
    while($row = mysql_fetch_array($this->rs,MYSQL_ASSOC)){
    array_push($dataList,$row);
    }
    $dataList를 반환합니다.
    }
    }
    $search= isset($argv[1]) ? $argv[1] :
    ( isset($_GET['search']) ? $_GET['search'] : '' ) ;
    $fetch=new DataFetch();
    $data=$fetch->data_list($search);
    에코 '[';
    foreach($data를 $key=>$value로){
    echo "nt";
    echo '"'.$value['sno'].'"';
    if( $key!=count($data)-1 ) echo ','; 그렇지 않으면 에코 "n";
    }
    echo "]n";
    ?>
    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    최신 이슈
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿