|
Функции срабатывают по несколько раз
Подгружаю поле ввода по клике на ссылку.
$(div).load('pole.php'); если прописывать дополнительные функции в самом pole.php допустим if(event.keyCode == 13){ alert('Ураа'); } то функция повторяется столько же сколько будет и полей . а функции вне файла pole.php ни срабатывают. как поступить ? |
Samsam,
ставить обработку событий на то что присутствует всегда через $('...').on('click', 'input',) |
$( "textarea" ).keyup(function(event) {.. } - Такой вариант не пойдёт ? он будет выбирать все textarea ?
|
а вообще нормально что коде будет дублироваться несколько раз одна и та же функция но с разными $('...'). ?
|
Samsam,
:-? $('body').on('keyup', 'textarea',function(event) {if(event.keyCode == 13){ alert('Ураа'); }}) |
Этот вариант не срабатывает.
Сейчас вот так $( ".textarea" ).on('keypress', function(event) { ... }); Подгруженные блоки $( ".textarea" ) не работают. Подскажите выход |
Samsam,
ставить обработчик на то что есть всегда (родителя и т.д. до window) $('body').on('keypress', '.textarea', function(event) { ... } или после создания элемента $(div).load('pole.php',function() { $( ".textarea" ).on('keypress', function(event) { ... });} ); |
Спасибо ! всё заработало. Ещё вопрос подскажите с фокусом.
$(div).html('длинный текст'); $(div).focus(); как сделать что бы фокус попадал в конец текста ? |
contenteditable курсор в конец текста
Samsam,
может есть другой способ <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var str = "длинный текст" , pos = str.length; $("div").html(str); var range = document.createRange(); range.setStart($("div")[0].childNodes[0], pos); range.collapse(true); var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); }); </script> </head> <body> <div id="slider" contenteditable ></div> </body> </html> |
Спасибо. А вообще будет ли замедляться работа сайта если вызов функций такого формата ( $('body').on('...', function(){...} ) будет очень много ?
|
Часовой пояс GMT +3, время: 02:08. |
|