2

我已经用jquery mobile制作了这个UI,我在这里做的是在按钮上单击搜索输入向下滑动以进行搜索......同样它将专注于输入框......

这是我正在使用的脚本,

 $(function() {

    $( ".opensearch" ).on( 'tap', tapHandler );

    function tapHandler( event ) {
      $('.search_field').slideToggle();
      setTimeout(function(){
         $('.search').focus().tap();
        },0);
    }

});

我已经在Opera Mobile 和 iphone上对其进行了测试,但问题是焦点没有发生意味着如果应用它应该显示浏览器键盘focus()......

我的代码是正确的还是其他的?纯javascript是使这项工作的解决方案吗?

这是它的非工作演示,http://jsfiddle.net/aH4QM/show/

4

3 回答 3

4

您的代码中的问题是 $('.search').focus().tap();

在你提到的html中

 <input name="search" id="search" value="" placeholder="Search Item...." type="search" data-theme="e" />

'Id'应该从'#' not '.'

修改后的 jsfiddle 链接为http://jsfiddle.net/aH4QM/4/

注意:要签入小提琴,我将'tap'事件更改为'click'

于 2013-05-16T05:52:16.977 回答
0

当您通过 id 访问特定元素时,您必须使用“#”而不是“。” 当你通过类名访问元素时,你可以使用“。”。请参考下面的代码。

$(function() {

    $( ".opensearch" ).on( 'tap', tapHandler );

    function tapHandler( event ) {
      $('.search_field').slideToggle();
      setTimeout(function(){
         $('#search').focus().tap();
        },0);
    }

});

谢谢,

湿婆

于 2013-05-16T05:58:14.267 回答
0

我刚刚在我的 html 代码中转换type="search"type="text",并为搜索添加了一个提交按钮...

像那样:-

<form>
      <input name="search" class="search" value="" placeholder="Search Item...." type="text" data-theme="e">
      <input type="submit" value="Search" data-mini="false" data-icon="search" data-iconpos="notext" data-theme="c"  />
</form>

和往常一样,JS 是一个简单的焦点:-

$( ".opensearch" ).on( 'click', tapHandler );
function tapHandler( event ) {
     $('.search_field').toggle();
     $('.search').focus();
}

该代码现在为我工作...... http://jsfiddle.net/aH4QM/14/show/

于 2013-05-27T08:00:09.210 回答