2016-04-06 7 views
0

Я хочу использовать фокус на текстовом поле, зачерпнуть значение нажатой кнопки, которая вызвала фокус, и щелкнуть ее позже, после некоторой обработки. Мое решение хорошо работает на всех устройствах, кроме iPhone и iPad. Может ли кто-нибудь объяснить, почему event.relatedTarget имеет значение null на сенсорных экранах? Или это браузер? Что еще можно использовать?event.relatedTarget имеет значение null для фокусировки на сенсорном экране

Я пробовал e.currentTarget и document.activeElement (возвращает весь объект HTML), а также пытается setTimeout вокруг моего использования e.currentTarget. Кажется, я не могу получить идентификатор нажатой кнопки внутри моего фокуса, на iPads и iPhones.

Вот пример:

<div id="resultPage"> 
    <textarea id="txtAnswer0" class="txtAnswer"></textarea> 

    <button id="goNow"> 
    GO 
    </button> 
</div> 

$(document).ready(function() { 


    $("#resultPage").on("focusout", ".txtAnswer:not(input[type=radio], input[type=checkbox])", function(e) { 

    var targetCtrl = e.relatedTarget; 

    alert(targetCtrl); 
    }); 

});

Вот моя скрипка:

https://jsfiddle.net/awebster28/6q6ok4re/25/

ответ

0

В моем исследовании я узнал relatedTarget только должен быть на события мыши. Если relatedTarget не имеет значения null в событии, отличном от мыши, то браузер не соответствует стандартам.

Возможно, вам придется временно сохранить кнопку и/или значение кнопки в переменной при щелчке, чтобы ее можно было использовать позже со вторым щелчком.