Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как я могу заблокировать события flexslider, в момент ввода текста в textarea (https://javascript.ru/forum/dom-window/58425-kak-ya-mogu-zablokirovat-sobytiya-flexslider-v-moment-vvoda-teksta-v-textarea.html)

Pavel_G 21.09.2015 13:06

как я могу заблокировать события flexslider, в момент ввода текста в textarea
 
Привет, ребята нужна помощь, у меня есть модальник со слайдером (flexslider) в этом модальнике есть textarea для ввода коммента к картинке, глюк в том что когда вводится текст и необходимо с помощь клавы переместится по тексту (влево/вправо) срабатывает событие prev() и next() в слайдере.

Подскажите есть ли возможность на время ввода текста отрубить все события слайдера, пытался с помощью .off() ничего не выходит:(

Может просто скажете хоть в какую сторону копать.
Спасибо

Lemme 21.09.2015 16:44

<textarea onkeypress="event.stopPropagation()"></textarea>
<script> document.body.onkeypress = function(){alert();}; </script>

laimas 21.09.2015 16:58

Lemme,

Это отменит вообще клавиатурные кнопки управления, чего можно и не писать, такое можно задать в настройках плагина этого.

Lemme 21.09.2015 17:08

laimas, с плагином не знаком, но показал лишь пример использования stopPropagation.

Цитата:

Это отменит вообще клавиатурные кнопки управления
ну это исправимо
<textarea></textarea>
<script>
	document.body.onkeypress = function(){alert();};
	document.querySelector('textarea').onkeypress = function(e) {
		if (e.keyCode === 37 || e.keyCode === 39) {
			e.stopPropagation();
		}
	}
</script>

laimas 21.09.2015 17:10

Если так, то лучше проверять родителя источника события, то есть форму, чтобы и на input не реагировать. Да и такую проверку в код плагина добавить. )

Lemme 21.09.2015 17:23

Цитата:

Да и такую проверку в код плагина добавить. )
Если человек такое спрашивает, то для него там будет темный лес ;)

laimas 21.09.2015 18:09

Наверное, но уж лучше пусть этому поводу запрашивает помощь, а не помнить постоянно о внешних добавках. :D

Pavel_G 22.09.2015 06:59

спасибо за ответ, но вариант с stopPropagation к сожалению не работает

laimas 22.09.2015 08:24

Откройте код плагина и найдите в нем строку

if(!a.animating&&(39===t||37===t))


измените ее на

if(!$(e.target).closest('form').length&&!a.animating&&(39===t||37===t))


Это с учетом того, что блокируется обработка именно полей формы, иначе нужно проверять источник события на его тип - e.target.tagName.

Pavel_G 22.09.2015 09:08

спасибо, большое, вот это помогло.


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