【问题标题】:jQuery .hide() on .blur() not working in iOS web app.blur() 上的 jQuery .hide() 在 iOS Web 应用程序中不起作用
【发布时间】:2014-05-11 03:34:09
【问题描述】:

我有一个网络应用程序,它在键入时隐藏底部工具栏以阻止它在键盘顶部运行。

$(document).ready( function() {
    $("#open").focus( function() {
        $('#bottom').hide();
    });
    $("#open").blur( function() {
        $('#bottom').show();
        check();
    });
});

$('#open'); 是一个<input> 框。

下面的栏没有隐藏,而是保留了下来。文本“正在加载”也出现在下方(出于某种原因)。这特别奇怪,因为我在计算机上检查时在 DOM 中找不到它。

链接:www.scriptr.net/webapp

【问题讨论】:

    标签: javascript jquery ios web-applications event-handling


    【解决方案1】:

    尝试为移动设备收听不同的就绪事件。像这样的

    document.addEventListener("deviceready",onReady,false);
    
    
    function onReady() {
       $("#open").focus( function() {
           $('#bottom').hide();
       });
    
       $("#open").blur( function() {
           $('#bottom').show();
           check();
       });
    }
    

    【讨论】:

      【解决方案2】:

      只需将此代码放在 deviceReady 函数上,为我工作

       document.addEventListener('focusout', function(e) {window.scrollTo(0, 0)});
                                              function isTextInput(node) {
                                              return ['INPUT', 'TEXTAREA'].indexOf(node.nodeName) !== -1;
                                              }
      
                                              document.addEventListener('touchstart', function(e) {
                                                                        if (!isTextInput(e.target) && isTextInput(document.activeElement)) {
                                                                        document.activeElement.blur();
                                                                        }
                                                                        }, false);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多