2013-05-29 2 views
0

Я пытаюсь использовать .focus(), чтобы сфокусироваться на входе, а затем автоматически вызывать клавиатуру для отображения, каждый раз, когда страница меняется. Вот мои коды:фокус на входе заставляет клавиатуру действовать странно

JQuery:

$(questionPage).on("pageshow",function(){ 
    $('input').focus(); 
    }); 

HTML5:

<input type="email" name="text_email" style="padding: 0px; margin: 0px" placeholder=""value="" class="email"'/> ; 

Но каждый раз, когда страница изменяется, клавиатура появляется и закрывается немедленно. Кто-нибудь знает, что вызывает это? Любые советы о том, как его решить?

+0

Вы пробовали сосредоточиться после короткой задержки, скажем, 50 мс? – robertc

+0

Укажите, на какой странице вы хотите, чтобы это событие срабатывало. ''pageshow', '#pageId', function()' – Omar

+0

@robertc Я пытался с $ ('input'). focus(). delay (5000); и setTimeout (function() {$ ('input'). focus();}, 5000); к сожалению, никто из них не работает :( – HuaY

ответ

0

Я решил эти проблемы. Это связано с тем, что события будут срабатывать несколько раз. Согласно this information о предотвращении связывания/запуска нескольких событий. Я решил проблемы со следующими кодами:

$(questionPage).on("pageshow",function(){ 
    $('textarea').focus(); 
    $('input').focus().delay(5000); 
    event.preventDefault(); 
}); 
Смежные вопросы