`

JS+JQuery模仿百度下拉效果,Opera方向键向下问题。。。。。。。

阅读更多
先看看代码吧,基本效果已经实现。
但是在Opera中当输入值后,按方向键控制选择,向下没得效果,向上可以。。。。
其它浏览器没得问题。。


  $("#" + inputDataTextId).keyup(function(event){

});

这个方法好像向下的时候根本就不执行。。。
请高人指点下。。。。

body {
    background-color: #F8F8FF;
}

#main {
    position: absolute;
    top: 100px;
    left: 36%;
    width: 400px;
    background-color: #F5FFFA;
}

#input_text {
    position: absolute;
    font-size: 18px;
    width: 390px;
    height: 23px;
    border: 1px solid #C9C9C9;
}

#input_div {
    position: absolute;
    width: 392px;
    top: 26px;
    border: 1px solid #454545;
    display: none;
    overflow: hidden;
}

#input_div {
    text-decoration: none;
    background-color: #FFFAFA;
}

#input_div div {
    vertical-align: middle;
    padding: 4px;
    font-weight: bold;
    color: #000000;
    width: 100%;
}

.div_item_select {
    background-color: #E0EEEE;
    height: 22px;
    font-size: 18px;
}

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Demo</title>
        <script type="text/javascript" src="jquery-1.4.2.js">
        </script>
    
    </head>
    <body>
        <div id="main">
            <input type="text" id="input_text">
            <div id="input_div">
            </div>
        </div>
    </body>
</html>



$(document).ready(function(){
  /**
   * 当鼠标 放上去 的效果 CSS  Class名称
   */
var divItemSelect = 'div_item_select';
/**
* 展示数据 的DIV
*/
  var showDataDivId = "input_div";
/**
* 输入框
*/
  var inputDataTextId = "input_text";
/**
* 点击
* @param {Object} event 
*/
  $(document).click(function(event){
      if (event.target.id != inputDataTextId) {
$("#" + showDataDivId).slideUp(200);
      }
  });
/**
* 鼠标在文本框输入值
* @param {Object} event
*/
  $("#" + inputDataTextId).keyup(function(event){
      if (event.keyCode == 40) {//down
          chageSelect(1);
      }
      else  if (event.keyCode == 38) {//up
          chageSelect(-1);
      }
      else  if (event.keyCode == 13) {//回车
          item_click($("#" + showDataDivId + " div[class='" + divItemSelect + "']"));
      }
      else   if (this.value.length > 0) {
          //..ajax请求, 返回的时候 调用。。
          //以下为 Ajax 返回的时候 调用的数据
          var len = 10 - this.value.length;
          if (len < 1) {
              len = 5;
          }
          var str = "";
          for (var i = 0; i < len; i++) {
              var index = i;//此处 为展示顺序,必须要
              //此处拼接服务器返回的数据。。。。
              str += "<div>" + this.value + index + "</div>" + //展示的数据
              "<input type='hidden' name='d_index' value='" +
              index +
              "' />" //位置,勿动
            //+ "<input type='hidden' name='d_value' value='" +index +"' />"; //用于放置数据
          }
          //展示层,并展示数据
          $("#" + showDataDivId).html(str).slideDown(200);
          //注册事件
          registerInputEvent();
      }
      else {
          $("#" + showDataDivId).slideUp(200);
      }
  });
//.blur(function(){$("#" + showDataDivId).slideUp(200);});
/**
* 键盘操作  向上 或向上 
* @param {Object} opt   向上 -1  向下 1 
*/
  function chageSelect(opt){
      if ($("#input_div").css('display') == 'block') {
          var obj = $("#input_div div[class='" + divItemSelect + "']");
          if (obj.html() == null) {//当前还未选中。
              if (opt == 1) {
                  $("#" + showDataDivId + " div:first").addClass(divItemSelect);
              }
              else {
                  $("#" + showDataDivId + " div:last").addClass(divItemSelect);
              }
          }
          else {
              var curr = parseInt($("#" + showDataDivId + " div[class='" + divItemSelect + "'] ~ input[name='d_index']").val()) + opt;
              var divCount = $("#" + showDataDivId + " div").size();
              $("#" + showDataDivId + " div[class='" + divItemSelect + "']").removeClass(divItemSelect);
              $("#" + showDataDivId + " div:eq(" + ((curr < 0) ? (divCount - 1) : ((curr == divCount) ? 0 : curr) + ")")).addClass(divItemSelect);
          }
      }
  }
/**
* 注册事件
*/
  function registerInputEvent(){
      $("#" + showDataDivId + " div").click(function(){
          item_click($(this));
      }).mouseover(function(){
          $("#" + showDataDivId + " div[class='" + divItemSelect + "']").removeClass(divItemSelect);
          $(this).addClass(divItemSelect);
      }).mouseout(function(){
          $(this).removeClass(divItemSelect);
      });
  }
  /**
   * 点击每一项的操作
   * @param {Object} obj
   */
  function item_click(obj){
      if (obj.html() == null) {//如果是按回车键。。。
          //暂时不做操作。。。。
      }
      else { //如果是点击 选择
          $("#" + inputDataTextId).val($(obj).html()).focus();
          //取得 你要放置的数据  d_value   为 变量名。。。
          //var currValue = $("#" + showDataDivId + " div[class='" + divItemSelect + "'] ~ input[name='d_value']").val();
      }
$("#" + showDataDivId).hide();
      //跳转。。。。。等 操作。
  }
});


  • 大小: 5.2 KB
1
0
分享到:
评论

相关推荐

    JavaScript+jQuery程序设计 源码

    通过分析和实践这个"JavaScript+jQuery程序设计 源码",学习者不仅能巩固JavaScript和jQuery的基础知识,还能提升实际项目开发经验,尤其是处理网页交互和动态效果的能力。同时,这也将有助于理解和应用更多高级特性...

    HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip

    本文将深入探讨这些技术,并基于"HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip"这个压缩包中的webdemo-master项目,分析它们在实际应用中的作用。 首先,HTML(HyperText Markup Language)...

    JavaScript+jQuery网页特效设计实例源码

    在这个"JavaScript+jQuery网页特效设计实例源码"的压缩包中,我们很可能会找到一系列实用的代码示例,帮助开发者理解和实现各种网页特效。 JavaScript,作为一种轻量级的解释型编程语言,被广泛应用于浏览器端,...

    JavaScript+jQuery网页特效设计任务驱动教程-PPT.zip

    通过jQuery,你可以轻松地实现如页面滚动、滑动效果、淡入淡出、弹窗、下拉菜单等常见网页特效。 本教程的PPT部分将涵盖以下主题: 1. JavaScript基础:介绍JavaScript语法、变量和数据类型、流程控制、函数以及...

    JavaScript+jQuery交互式Web前端开发-源代码.zip

    JavaScript 和 jQuery 是现代 Web 前端开发中的两个核心工具,它们共同为创建动态、交互式的网页提供了强大的功能。在本教程中,我们将深入探讨如何将这两种技术与 HTML 和 CSS 结合,以实现高效的网页设计。 ...

    期末作品网页制作css+js+jquery

    作品实现了以下的js功能: (1) 使用正则表达式验证注册页面信息 (2) 网站首页动态显示系统时间 (3) 动态改变导航菜单样式 (4) 制作图片轮显效果 (5) 制作随光标滚动的广告图片效果 (6) 制作光标移到某...

    商城购物车JS+JQUERY特效

    "商城购物车JS+JQUERY特效"是一个利用JavaScript(JS)和jQuery库实现的购物车动态效果的示例,旨在提升用户在添加商品、查看购物车、调整数量等操作时的视觉感受。 【描述】:“商城购物车JS+JQUERY特效” 这个...

    web前端 html+css+js+jquery 网易云音乐官网模仿

    在本项目中,“web前端 html+css+js+jquery 网易云音乐官网模仿”是一个前端学习项目,目的是通过模仿网易云音乐的官方网站来掌握和应用HTML、CSS、JavaScript以及jQuery这四门核心技术。接下来,我们将深入探讨这些...

    HTML+CSS+JS+jQuery+常用js特效-CHM文档

    其中,JavaScript常用特效部分可能涵盖了如滚动效果、图片轮播、下拉菜单、时间日期插件等常见的网页交互效果,这些都是网站开发中不可或缺的部分。 通过这些文档,开发者不仅可以深入理解HTML、CSS、JavaScript和...

    php+mysql+jquery.more.js下拉加载带sql数据完整流程带mysql测试数据

    `js`目录则包含了除`jquery.more.js`之外的其他JavaScript文件,比如可能有一些辅助脚本或自定义的业务逻辑。 总的来说,这个项目展示了如何将前端交互(jQuery的下拉加载功能)与后端处理(PHP和MySQL)相结合,...

    精通JavaScript+Jquery视频教程(共16讲)(15)

    精通JavaScript+Jquery视频教程(共16讲)(15)

    Three.JS+原生JS+jQuery实现3D机房

    在本项目中,我们主要探讨如何使用Three.js、原生JavaScript和jQuery来创建一个3D机房模拟系统。这个系统不仅展示了一个逼真的3D环境,还具备实用的功能,如设备管理、告警处理和机柜布局调整。下面将详细阐述这些...

    html+css+javaScript+jQuery 制作的Table

    自己编写的一个Html的Table 利用html,css实现了页面的表示,利用javaScript和jQuery实现了页面的动画效果。

    php+ajax仿百度谷歌搜索下拉效果

    在IT行业中,实现类似百度和谷歌的搜索下拉效果是一项常见的需求,这能极大地提升用户体验。本项目以"php+ajax"技术栈为基础,旨在创建一个动态的搜索建议功能,让用户在输入关键字时就能看到相关的搜索建议,无需...

    jQuery+bootstrap+ztree多选下拉树

    事先声明下(代码非常杂乱,并未写成插件,方法都是非常low的方法),这个是模拟bootstrap的插件select-picker插件完成的多选下拉树,类似picker中,这个也可以输入进行查询,因为项目特殊需要,里面都是直接id命名...

    JavaScript+jQuery网页特效设计实例教程

    JavaScript 和 jQuery 是网页开发中的两种重要技术,它们在创建交互式和动态网页方面发挥着关键作用。本教程将深入探讨如何结合使用这两种语言来设计出令人眼前一亮的网页特效。 JavaScript 是一种轻量级的解释型...

    jQuery模仿百度关键词下拉匹配效果.zip

    《jQuery实现百度关键词下拉匹配效果详解》 在网页开发中,用户友好的交互体验是提升网站质量的关键因素之一。其中,关键词下拉匹配功能,就像百度搜索框那样,能够实时展示用户输入的建议,极大地提高了用户的输入...

    jQuery模仿百度关键词下拉匹配效果

    一个jQuery插件,可以模仿搜索引擎,输入关键词,底部下拉显示更多匹配内容的效果 也类似、京东这种大型购物类网站搜索的效果 使用方法: 1、将head中的CSS样式拷贝到你的网页中 2、将body中需要的代码部分拷贝...

    贪吃蛇js+jquery+jquery.cookie

    《贪吃蛇游戏实现:基于js+jquery+jquery.cookie》 贪吃蛇游戏,作为一款深受全球玩家喜爱的经典游戏,其简单的操作和无尽的挑战性使其历久弥新。在现代前端技术的支持下,我们可以利用JavaScript、jQuery以及...

Global site tag (gtag.js) - Google Analytics