Вход

Просмотр полной версии : как я могу заблокировать события flexslider, в момент ввода текста в textarea


Pavel_G
21.09.2015, 13:06
Привет, ребята нужна помощь, у меня есть модальник со слайдером (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
спасибо, большое, вот это помогло.