最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)百度搜索下拉提示功能實例

 更新時間:2017年06月14日 11:30:11   作者:22337383  
這篇文章主要介紹了vue實現(xiàn)百度搜索下拉提示功能實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這段代碼用到vuejs和vue-resouece。實現(xiàn)對接智能提示接口,并通過上下鍵選擇提示項,按enter進行搜索

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script type="text/javascript" src="vue.js"></script>
 <script type="text/javascript" src="vue-resource.js"></script>
 <script type="text/javascript">
 window.onload = function() {
  var app = new Vue({
   el: '#box',
   data: {
    myData: [],
    tt: '',
    now: -1
   },
   methods: {
    get: function(e) {

     // 請求限制 按了上下箭頭
     if (e.keyCode === 38 || e.keyCode === 40) {
      return
     }
     // enter跳轉(zhuǎn)
     if (e.keyCode === 13) {
      window.open('https://www.baidu.com/s?wd=' + this.tt);
      this.tt = '';
     }
     this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su', {
      wd: this.tt
     }, {
      jsonp: 'cb'
     }).then(function(res) {
      // 請求成功
      this.myData = res.data.s;
        this.now = -1;
     }, function(res) {
      // 請求失敗
      console.log(res.status)
     })
    },
    changeDown: function() {
     this.now++;
     // 到了最后一個選項
     if (this.now === this.myData.length) {
      this.now = -1;
     }
     this.tt = this.myData[this.now]
    },
    changeUp: function() {
     this.now--;
     // 到了第一個選項
     if (this.now === -2) {
      this.now = this.myData.length - 1;
     }
     this.tt = this.myData[this.now]

    }
   }
  })
 }
 </script>
 <style type="text/css">
 .gray {
  background: gray
 }
 </style>
</head>

<body>
 <!-- 百度下拉接口 -->
 <div id="box">
  <input type="text" v-model="tt" name="" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up="changeUp()">
  <ul>
   <li v-for="(item, index) in myData" :class="{gray:index===now}">{{item}}</li>
  </ul>
 </div>
</body>

</html>

效果圖:

這個ajax請求沒有做節(jié)流,很多時候需要限制ajax頻繁請求,可以小改一下:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script type="text/javascript" src="vue.js"></script>
 <script type="text/javascript" src="vue-resource.js"></script>
 <script type="text/javascript">
 window.onload = function() {
  var app = new Vue({
   el: '#box',
   data: {
    myData: [],
    tt: '',
    now: -1
   },
   methods: {
    get: function(e) {

     // 請求限制 按了上下箭頭
     if (e.keyCode === 38 || e.keyCode === 40) {
      return
     }
     // enter跳轉(zhuǎn)
     if (e.keyCode === 13) {
      window.open('https://www.baidu.com/s?wd=' + this.tt);
      this.tt = '';
     }
     // 限制頻繁請求
     this.throttle(this.getData,window)
    },
    changeDown: function() {
     this.now++;
     // 到了最后一個選項
     if (this.now === this.myData.length) {
      this.now = -1;
     }
     this.tt = this.myData[this.now]
    },
    changeUp: function() {
     this.now--;
     // 到了第一個選項
     if (this.now === -2) {
      this.now = this.myData.length - 1;
     }
     this.tt = this.myData[this.now]

    },
    // 把請求單獨拿出來
    getData() {
     this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su', {
      wd: this.tt
     }, {
      jsonp: 'cb'
     }).then(function(res) {
      // 請求成功
      this.myData = res.data.s;
        this.now = -1;
     }, function(res) {
      // 請求失敗
      console.log(res.status)
     })
    },
    // 節(jié)流函數(shù)
    throttle(method,context){
      clearTimeout(method.tId);
      method.tId=setTimeout(function(){
        method.call(context);
      },300);
    }
   }
  })
 }
 </script>
 <style type="text/css">
 .gray {
  background: gray
 }
 </style>
</head>

<body>
 <!-- 百度下拉接口 -->
 <div id="box">
  <input type="text" v-model="tt" name="" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up="changeUp()">
  <ul>
   <li v-for="(item, index) in myData" :class="{gray:index===now}">{{item}}</li>
  </ul>
 </div>
</body>

</html>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

西峡县| 平阳县| 呼伦贝尔市| 天津市| 公主岭市| 武邑县| 淮滨县| 阿拉尔市| 济源市| 思茅市| 娄底市| 昌图县| 象山县| 淮阳县| 海南省| 开封市| 当阳市| 铁力市| 宜阳县| 东海县| 泰兴市| 叶城县| 玛沁县| 兴宁市| 循化| 营口市| 青龙| 衡水市| 门源| 太仓市| 林芝县| 呼和浩特市| 出国| 扬州市| 礼泉县| 临沂市| 淅川县| 静乐县| 长沙市| 大英县| 怀安县|