iPad HTML Focus

前端 未结 3 1792
被撕碎了的回忆
被撕碎了的回忆 2020-11-28 16:06

I have an issue with focusing a text field on the iPad. Where I use:

$(document).bind(\"click\",function(event) {
    alert(\'click\');
    focusTextArea();
         


        
3条回答
  •  悲哀的现实
    2020-11-28 16:30

    Sorry folks, I guess I have to bring you a bad news :-)

    So much questions for "HOW DO I FOCUS ON AN INPUT FIELD ON IPAD USING CLICK HANDLER ?" And sooooo much answers which doesn't really help ...

    The bad news, which is not really a news, is that it isn't possible, because the focussed element will loose the focus again, while the operation of the clicked paragraph is subject to be finished.

    The example above again here for explaination

    $(document).bind("click",function(event) {
        alert('click');
        focusTextArea();
    });
    

    means: 1. focus on document 2. fire the click event (focus on textarea) 3. get back to document (document gets focus again) 4. finishig click event, document looses focus.

    Now to the goooood news !

    The final solution (tested an iPhone, iPad and android with native internet app, firefox and chrome) is: Use touchend or mouseup instead !

    $(document).bind("touchend",function(event) {
        alert('click');
        focusTextArea();
    });
    

    or

    $(document).bind("mouseup",function(event) {
        alert('click');
        focusTextArea();
    });
    

    In combination with jquery plugin

    * jQuery Browser Plugin v0.0.6
    * https://github.com/gabceb/jquery-browser-plugin
    

    I am using a small script which will detect platform (mobile or not) and set the correct clickhandler for later use.

    var clickevent = '';
    if ($.browser.mobile) clickevent = 'touchend';
    else clickevent = 'click';
    

    Now I can use the following

    $(document).bind(clickevent,function(event) {
        alert('click');
        focusTextArea();
    });
    

    which will work for both, desktops and mobil devices.

    Hope this helps :-)

提交回复
热议问题