Действительно лучший способ сделать это состоит в том, чтобы установить обработчик для onFocus события и затем установить переменную на идентификатор элемента, который фокусируется.
что-то вроде этого:
var id;
$(":input").focus(function () {
id = this.id;
});
У меня есть совет относительно точки 3 (общий дизайн API):
Начало создания вашего API на конкретных сценариях использования ; Сделайте свой дизайн конкретным, а не общим - затем сделайте обобщение позже , если вы обнаружите, что API можно использовать повторно.
В прошлом я видел, как API были отредактированы до такой степени, что они стали настолько универсальными, что один из параметров метода - это объект «Параметры» или, что еще хуже, дерево DOM, соответствующее произвольной части XML; например Я хочу объяснить, что такое BAML.
На самом деле существует два способа обработки файла XAML: свободный или скомпилированный.
A Свободный файл XAML не может включать ключевое слово XAML x: Class , а также не может встраивать исходный код и ни в коем случае не может генерировать код. Можно загрузить свободный файл XAML, вызвав метод XamlReader.Load (), преобразовав возвращаемое значение в корневой элемент. Свободная версия XAML обеспечивает динамический способ загрузки и изменения представления, но обеспечивает низкую производительность из-за того, что XML-файл анализируется во время выполнения.
Скомпилированный XAML-файл (BAML) может генерировать код, используя x: Class , или, например, регистрируя события. Можно загрузить элемент изнутри BAML, вызвав Application.LoadComponent () , преобразовав возвращаемое значение в корневой элемент. Скомпилированная версия XAML обеспечивает лучшую производительность, поскольку она является предварительно токенизированной двоичной версией файла XAML, следовательно, она меньше по размеру и может загружаться быстрее, но не является динамической.
Когда-то давно существовал CAML. CAML был точной версией IL скомпилированного файла XAML. К сожалению, команда WPF решила устранить его и сохранить версию BAML по следующим причинам:
Внизу В строке BAML немного медленнее IL, но у него больше преимуществ, чем у CAML.
Xaml отделен от кода C #, потому что он позволяет этим элементам «программно кодировать». Если вы скомпилируете код Xaml в C #, вы лишитесь этой характеристики, потому что теперь элементы пользовательского интерфейса, привязка данных, обработка событий и т. Д. Теперь жестко закодированы в программе, и вам нужно перекомпилировать всю программу, чтобы внести незначительные изменения в пользовательский интерфейс.
Сообщение в блоге, что петр к. В справочниках говорится, что Xaml когда-то был скомпилирован в IL, но теперь используется Baml, потому что: