Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему нет метода "on" (https://javascript.ru/forum/jquery/44590-pochemu-net-metoda.html)

borus 25.01.2014 13:44

Почему нет метода "on"
 
Здравствуйте!

Попробовал реализовать отображение картинки в зависимости от выбранного значения в select с id 'baget_select'.
Вот подопытная страница, упражняюсь с обработкой выбора значения в select'е "Тип багета".
Среди ошибок в коде увидел:
Цитата:

Uncaught TypeError: Object [object Object] has no method 'on'
но не знаю как с ней быть. Jquery библиотеки подключены. Может они старые?..

Что я делал:
1. создал файл /templates/za-mag/js/abv347.js следующего содержания:
jQuery(function($) {
	$('#baget_select').on('change', function(){
		$('.myImg').remove();
		if($(this).val()=="5723"){
			$( '.product-field-type-S').after( '<img class="myImg" src="/images/banners/'+$(this).val()+'.jpg" alt="Тёмный багет" title="Тёмный багет" />' );
		}
		else{
			$( '.product-field-type-S').after( '<img class="myImg" src="/images/banners/'+$(this).val()+'.jpg" alt="Светлый багет" title="Светлый багет" />' );
		}
	});
});

2. Прописал в index.php шаблона подключение .js файла:
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/abv347.js"> </script>


3. Выложил картинки 5723.jpg и 5724.jpg в /images/banners

Вопрос, что надо исправить, чтобы заработало появление картинок?

рони 25.01.2014 14:02

Цитата:

Сообщение от borus
Почему нет метода "on"

потому что его нет ... в jQuery ниже 1.7 а у вас jQuery v1.6.4

borus 25.01.2014 14:33

скажите, если поставить 1.7, то есть вероятность, что что-то перестанет работать?
А есть альтернатива on в 1.6.4?

рони 25.01.2014 14:38

Цитата:

Сообщение от borus
А есть альтернатива on в 1.6.4?

live

borus 25.01.2014 16:03

обошелся jquery1.7.2
скажите, а как получить выбранное значение для селекта?
у меня в коде обработчика изменения select используется $(this).val(), а надо именно то, что отображается после выбора в выпадающем списке

рони 25.01.2014 16:15

Цитата:

Сообщение от borus
у меня в коде обработчика изменения select используется $(this).val(), а надо именно то, что отображается после выбора в выпадающем списке

$(this).val() отображает неверно или как?

borus 25.01.2014 16:25

чтобы было понятнее картинка:
http://storage9.static.itmages.ru/i/...0feb793567.jpg
как выбрать слова, а не цифры?
у меня, судя по тому, что название картинки формирую из значения $(this).val(), берутся значения атрибутов value select'a, а нужно как-то выйти на слова "темный" и "светлый"
Пытаюсь так, но не срабатывает
$(this :selected).text()
Как будет правильно?

рони 25.01.2014 16:50

borus,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>

$(function(){
     var sel = $('#baget_select'),
     foo = function(){alert($(':selected',sel).text())};
     foo();
     $('body').on('change', sel, foo)
});

</script>
</head>
<body>
 <select id="baget_select" name="" size="1" >
 <option value="12345">светлый</option>
 <option value="5723">темный</option>
 </select>
</body>
</html>


Часовой пояс GMT +3, время: 18:27.