vue的jsonp百度下拉菜单

通过vue的jsonp实现百度下拉菜单的请求,vue的版本是2.9.2

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script src="vue.min.js"></script>
 7     <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-resource/1.3.4/vue-resource.min.js"></script>
 8     <style>
 9         .gray {
10             background-color: #ccc;
11         }
12     </style>
13     <script>
14         window.onload = function () {
15             new Vue({
16                 el: ‘#box‘,
17                 data: {
18                     myData: [],  //搜索下拉数据列表
19                     t1: ‘‘,      //输入框里的值
20                     now: -1      //输入框里面的值得索引,0位列表第一项
21                 },
22                 methods: {
23                     get: function (ev) {
24                         if(ev.keyCode==38 || ev.keyCode==40){ //当按照上下键的时候停止搜索
25                             return
26                         }
27                         if(ev.keyCode==13){
28                             window.open(‘https://www.baidu.com/s?wd=‘+this.t1) //打开百度搜索
29                         }
30                         this.$http.jsonp(‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘, {
31                             params: {
32                                 wd: this.t1  // 输入的关键词
33                             },
34                             jsonp: ‘cb‘  //callback函数的名称
35                         }).then(function (res) {
36                           this.myData=res.data.s;
37                           console.log(this.myData)
38                         }, function (err) {
39                             console.log(err.status);
40                         });
41                     },
42                     changeDown: function () {  //向下选择
43                         this.now++;
44                         if (this.now == this.myData.length) { //判断是否超出列表长度
45                             this.now = -1;
46                         }
47                         this.t1 = this.myData[this.now];  //改变输入框的值
48                     },
49                     changeUp: function () {  //向上选择
50                         this.now--;
51                         if (this.now == -2) {
52                             this.now = this.myData.length - 1;
53                         }
54                         this.t1 = this.myData[this.now];
55                     },
56                     dataLink: function (index) {  //鼠标点击跳转
57                         this.t1 = this.myData[index];
58                         this.now = index;
59                         window.open(‘https://www.baidu.com/s?wd=‘ + this.t1);
60                         this.t1 = ‘‘
61                     }
62                 }
63             })
64         }
65     </script>
66 </head>
67 <body>
68 <div id="box">
69     <input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()">
70     <ul>
71         <li v-for="(value,index) in myData" :class="{gray:index==now}">
72             {{ value }}
73         </li>
74     </ul>
75     <p v-show="myData.length==0">暂无数据...</p>
76 </div>
77
78 </body>
79 </html>

原文地址:https://www.cnblogs.com/eric_yi/p/8361685.html

时间: 2024-08-06 09:45:43

vue的jsonp百度下拉菜单的相关文章

使用vue来开发一个下拉菜单组件(1)

一.新建demo工程 vue init webpack-simple demo 添加src/mixins/emitter.js文件(见前几篇博文) 安装font-awesome字体库: cnpm install font-awesome --save 配置webpack.config.js,引入字体文件: { test: /\.(otf|eot|ttf|woff|woff2)$/, loader: 'file-loader' } 在src/main.js中引入font-awesome: impo

Vue.js模拟百度下拉框

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>智能社--http://www.zhinengshe.com</title> 6 <style> 7 .gray{ 8 background: #ccc; 9 } 10 </style> 11 <script

使用NGUI制作关联下拉菜单(查询全国天气)

关联菜单,在我们浏览网页时经常见到,它极大的方便了我们的操作,在游戏中,偶尔也会用到关联下拉菜单.下面,我们使用关联下拉菜单来查询下全国的天气. 首先,老规矩我们搭建基本的UI界面.我们就不自己去制作UI组件了,直接使用NGUI封装好的UI组件. 我们先创建于一个Sprite,重命名为BgSprite,为其选择图集和精灵. 在菜单中选择NGUI,选择Open,打开Prefab Toolbar,拖一个PopupList,重命名为ProvincePopupList.这里,我们要注意, 我们导入支持中

jQuery下拉菜单

下拉菜单如果采用原生javascript制作代码比较多,但是使用jquery就大大提高了开发效率,几行代码就搞定 <div id="wrap"> <ul id="menu"> <li><a href="#">Study</a> <ul class="submenu"> <li><a href="#">JavaSc

angular的跨域(angular百度下拉提示模拟)和angular选项卡

1.angular中$http的服务: $http.get(url,{params:{参数}}).success().error(); $http.post(url,{params:{参数}}).success().error(); $http.jsonp(url,{params:{wd:'',cb:'JSON_CALLBACK'}}).success().error(); 注意jsonp中cb在angular中规定只能使用JSON_CALLBAC $watch(谁,做什么,false): 谁指

二级下拉菜单的三种实现方法——CSS 、JS、 jQuery

直接用CSS的  hover实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>下拉菜单</title> <link rel="stylesheet" type="text/css" href="./css/style.css">

Atitit.ui控件---下拉菜单选择控件的实现select html

Atitit.ui控件---下拉菜单选择控件的实现select   html 1. 调用& model的实现 1 2. -----select.jsp------ 1 1. 调用& model的实现 Proj.vod2 <% List li=new ArrayList(); Map m=new HashMap (); m.put("lab","爱情"); m.put("v","1"); li.add(m)

下拉菜单navbar-collapse折叠效果

前面篇已经介绍了Quartz.NET的配置,使用和Cron表达式表达式的写法.基本上后台的定时任务的定时执行已经完成,并能正确的按照执行计划,执行相关的job . 然后,如果任务需要更新,停止某个任务呢 ? 总不能上服务器去改相关job 的配置吧. 所以,Quartz.NET 也给我们提供了远程调度的方法.这次就简单介绍下Quartz.NET 远程调度的配置和方法. 在JavaScript中,我们可以使用函数.数组.对象,以及日期.正则等一些内置类型的实例,它们都是复杂类型的表现.从本质上讲,这

jQuery美化下拉菜单插件dropkick

dropkick是一款基于jquery库的美化下拉框下拉菜单的插件,它通过定制HTML插入可使丑陋无聊的<select>下拉列表变得美丽. name属性是唯一一个必需的填写的,不过你也应该设定一个tabindex属性来设定导航菜单的排序. 在dropkick选择一个选项时,亦会触发事件,这意味着您的表单.AJAX工作和传统的一样,无需进行任何更改. 如本款不合适,请看下本站另一款jQuery下拉框能扩展和美化插件Chosen 特点 1.像一个下拉框一样工作 2.支持键盘:可通回车,上下方向健来