Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2017, 10:32
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,788

Click event on select > option element.
Здравствуйте.
Возможно ли перехватить событие "клик" по опции нативного селекта?
Событие change не подходит.

Макет:
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<select name="sort_by" data-role="async-filter">
	<option value="novelty-desc" selected="">Новизне ↑</option>
	<option value="title">Алфавиту ↑</option>
	<option value="price">Цене ↑</option>
	<option value="rating">Рейтингу ↑</option>
</select>
<script>
	$(function(){
		
	});
</script>
Интересует клик по выбранному опшену, клик по другим вызовет change event.

Заранее благодарю.
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2017, 10:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Nexus
Возможно ли перехватить событие "клик" по опции нативного селекта?
Так это легко проверить самому

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('select > option').click(function(){alert(1);});
});
</script>
</head>
<body>
<select name="sort_by" data-role="async-filter">
	<option value="novelty-desc" selected="">Новизне ↑</option>
	<option value="title">Алфавиту ↑</option>
	<option value="price">Цене ↑</option>
	<option value="rating">Рейтингу ↑</option>
</select>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2017, 10:43
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,788

ksa, у меня самого ничего не вышло.
Надеялся на ответ типа этого: «Конечно можно, попробуй так...»
Ваш код не работает (у вас ведь тоже?).
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2017, 10:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Nexus
Ваш код не работает
Он демонстрирует невозможность этой затеи...

Сообщение от Nexus
Надеялся на ответ типа этого: «Конечно можно, попробуй так...»
Отнюдь...
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2017, 11:00
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,788

Решил проблему костылем:
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<select name="sort_by" data-role="async-filter">
	<option value="novelty-desc" selected="">Новизне ↑</option>
	<option value="title">Алфавиту ↑</option>
	<option value="price">Цене ↑</option>
	<option value="rating">Рейтингу ↑</option>
</select>
<script>
	$(function(){
		$('[data-role="async-filter"]').on('click',function(){
			if(!this.value || this.hasAttribute('data-orig-value'))
				return;

			$(this).attr('data-orig-value',this.value)
				.find(':selected').prop('selected',false).removeAttr('selected');
			
			this.value=null;
		}).blur(function(){
			if(!!this.value)
				return;

			var $t=$(this);
			this.value=$t.attr('data-orig-value');
			$t.removeAttr('data-orig-value');
		}).change(function(){
			console.log('Change');
		});
	});
</script>

Последний раз редактировалось Nexus, 31.10.2017 в 11:12.
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2017, 11:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,788

ksa, спасибо за ответ.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
select - большое количество option kot_k_k (X)HTML/CSS 3 08.09.2017 16:34
Как сделать фильтрацию одинаковых элементов в списке SELECT -> OPTION? Enkille Общие вопросы Javascript 1 11.09.2016 22:37
Подскажите как лучше положить .xml документ в базу Гробовщик Серверные языки и технологии 4 02.09.2013 11:15
HTML 5. Выбор стратегии...(JS? JQ?) Mike_Kharkov (X)HTML/CSS 20 31.07.2012 15:26
select -> плавущий размер option FOJIK Элементы интерфейса 0 26.03.2011 18:42