Вы можете связать некоторые события, используя функцию jQuery one
, например:
$('select').one('click', firstClick);
function firstClick(evt) {
//do anything you might want to do
$(evt.target).parent().one('click', secondClick);
}
function secondClick(evt) {
//again, do you thing
$(evt.target).parent().one('click', firstClick);
}
Функция one
выполнит обработчик события, который вы дадите один раз, а затем удалит его. Это решение позволяет переключать обработчик при каждом нажатии. Просто будьте осторожны, если вы используете этот. Вам также необходимо обработать событие blur
для сброса первого обработчика.
Вы также можете использовать функцию live
jQuery , чтобы свести к минимуму количество создаваемых вами обработчиков событий и сэкономить память. Это также позволит избежать некоторых проблем, которые я мог предвидеть с помощью своего первого решения.
$('select option').live('click', selectHandler);
function selectHandler(evt) {
//insert magic here
}