jquery – 在ipad的情况下使图像位于文本框上可单击(为iOS创建HTML5搜索输入类型)

我正在尝试使用 javascript模拟 HTML5输入类型=’搜索’.我的目标是做这样的事情:

首先,我将指出为什么我没有直接使用HTML5搜索输入类型.在iPad的情况下,提到的输入类型显示圆角文本框和本机搜索输入框所需的所有其他功能看起来与iOS相似,除了用户在某些文本中键入时文本框一角的小十字(x)图标进入搜索框.

我尝试了所有方法 – 将输入类型搜索放入< form>,重新定位type =’search’等.似乎没有带来所需的效果(仅当应用程序部署在ipad上时 – webview或移动浏览器).

因此,我使用十字图标模拟窗口小部件,并根据搜索框内的内容有选择地显示/隐藏它.它适用于所有版本的桌面Safari(通过开发人员工具切换).但是,当我在iPad上尝试时,在搜索框内键入会根据需要显示交叉图标,但不允许在其上注册触摸事件.我也知道这个的原因,因为当用户键入时屏幕键盘处于活动状态时,搜索文本框上会阻止下一个触摸事件.因此,还可以防止触摸十字图标.

我的代码如下:

HTML看起来像这样:

<form id="searchForm">
    <div>
        <input type="search" id="searchBox">
        <a id="cross_icon" >
            <img src="search.png">
        </a>
    </div>
</form>

jquery代码如下所示:

//This function will be triggered on keyup event on searchBox
showXIcon : function(){
                var search = $('#searchBox').val();
                if(search.replace(/\s/g,"") === "") {
                   $('#cross_icon').hide();
                } else {
                   $('#cross_icon').show();
                }


            },//this function will be called on click on cross_icon
clearSearchBox: function(){
            $('#searchBox').val('');
            $('#cross_icon').hide();
        },

有没有办法在十字图标上允许触摸事件而不会明显模糊屏幕键盘?任何其他方式或@R_502_323@?

@R_502_323@

你可以用css复制它
这是我将如何做的一个例子

http://jsfiddle.net/LqVNM/6/

HTML:

<div id="search_combo">
    <div id="icon-left"><img id="s-img" src="http://c.dryicons.com/images/icon_sets/symbolize_icons_set/png/128x128/search.png" width="16px" height="16px"/>&#x25BC; </div>
    <input type="text" name="search" id="search"/>
    <div id="icon-right"><img id="s-img" src="http://cdn3.iconfinder.com/data/icons/glyph/227/Cancel-128.png" width="16px" height="16px"/></div>
</div>

CSS:

#search{
    border: 0 none;
    border-top: 1px solid #666666;
    border-bottom: 1px solid #666666;
    height: 25px;
}

#search:focus {
    outline-width: 0;
}

#icon-left{
    font-size: 10px;
    color: #666666;

    display: inline;
    position: relative;
    right: -2px;
    padding: 8px 0px 6px 6px;
    border: 1px solid #666666;
    border-right: 0 none;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px;

    cursor: pointer;
}

#icon-right{    
    display: inline;
    position: relative;
    left: -6px;
    padding: 4px 6px 5px 0;
    border: 1px solid #666666;
    border-left: 0 none;
    border-top-right-radius: 15px;
    border-bottom-right-radius: 15px;

    cursor: pointer;
}
@-moz-document url-prefix() { 
  #icon-left{
     padding-top: 10px;
  }
   #icon-right{
     padding-top: 6px;
  }
}

#s-img{
    position: relative;
    top: 3px;
}

JQUERY:

$(document).ready(function(){
    $("#icon-left").click(function(){
        alert("clicked search icon");
    });

    $("#icon-right").click(function(){
        alert("clicked cancel icon");
    });
});

http://jsfiddle.net/LqVNM/6/

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...