Я пытаюсь обнаружить событие «изменить» для «списка выбора», как будто из «щелчка мышью» или из «нажатия вкладки (т.е. потеря фокуса)».После этого я хочу сделать разные вещи, основываясь на этих двух действиях.
В глубине это выглядит следующим образом:
У меня есть «список выбора» в строке таблицы.Всякий раз, когда пользователь выбирает элемент из этого списка, некоторые элементы управления (входы, выборки и т. Д.) Динамически загружаются под указанным «списком выбора» внутри следующей строки таблицы.
Что я хочу отсюда, так это то, чтоесли пользователь выбирает какой-либо элемент из «списка выбора» через клавиатуру и нажимает вкладку, фокус должен автоматически переключаться на самый первый элемент управления, который отображается динамически.Точно так же, если пользователь выбирает элемент из «списка выбора» с помощью мыши, фокус не должен никуда перемещаться.
Ниже приведен мой код для достижения того же:
$("#mySelectList").bind("change", function (e) {
var selList = $(this);
$.post("/someController/someAction", { paramOne: $(this).val() }, function (result) {
// ..... //
// consume "result" and load dynamic controls underneath the "select list"
selList.closest('tr').next().find("input, select:first-child").focus(); // set focus to the next immediate control
}, 'json');
});
Извыше, все работает нормально при использовании «вкладки», но если пользователь выбирает с помощью мыши, фокус все еще перемещается к следующему динамическому элементу управления, что плохо.Я хочу сохранить фокус только на «списке выбора», если пользователь использует мышь, чтобы выбрать элемент.
Я также попытался использовать «keyup» вместо «change», но это вызывает «select list», чтобы выстрелить прямо сейчасajax-запросы, которые являются проблемой с точки зрения ненужного ajax-запроса при навигации по элементам управления, скажем, с помощью «вкладки вкладок вкладок» или «сдвиг вкладок + вкладка вкладок и т. д.».
Пожалуйста, дайте мне знать, если вы, ребята, знаете лучшеспособ достижения этого сценария.Я также с нетерпением жду возможного решения для каждого существующего браузера.
Жду ваших добрых ответов.
Заранее спасибо.