После этого зайдите в Network и посмотрите два последних запроса - GET ушёл на "https://toster.ru/?asd=2" и без тела, а POST ушёл на "https://toster.ru/" с вот этими данными в теле (FormData): asd: 2
Андрей: если под "убираю аякс" вы имеете в виду "использую обычную форму", то возможно дело в том, что $.ajax кладёт данные data в тело POST запроса, а форма отправляет их в виде параметров URL, а значит ваша петрушка "@mood = Mood.create(params[:mood])" отрабатывает корректно только когда данные переданы в виде параметров.
Думаю, проверить не сложно - попробуйте в коде с $.post убрать свойство data и вручную конкатенировать его с URL ('/moods?rating=4&remark=Boston'). Сработает?
yurygolikov: в основном потоке такое невозможно, но можно весь описанный вами алгоритм завернуть в асинхронную функцию и тогда уже останавливать выполнение в любом удобном месте. Если я опять не понял, то видимо у меня чего-то не хватает в голове, вероятно лучше подождать более компетентных специалистов.
yurygolikov: ну тут не особенно важно как вы это называете - слип, "отложить выполнение" или "подождать исполнения". В любом случае, в рамках главного потока нельзя вот так запросто подождать.
Вы можете попробовать сделать так, то есть откладывать выполнение нужных функций в теле асинхронной функции. Остановить выполнение главного потока без запихивания в него тяжелых синхронных вычислений нельзя.
Если вы еще не решили проблему, то в вашем случае надо устанавливать координаты блока так: текущий_скролл_блока + текущие_координаты_блока + разница_между_текущими_координатами_курсора_и_изначальными_при_клике
RaulDuke: окей. В "2к17", как и в любой другой период своего существования, jQuery предоставляет функционал более чем достаточный для разработки проектов у которых сложность ниже уровня веб-приложений: блоги, лендинги и сайты других типов, не нуждающихся в реализации SPA. Следовательно, в "2к17", как и в любой другой период существования jQuery, использование его для не-SPA проектов является хорошей идеей. И если вас действительно интересует что об этом думают крутые ребята, то это не мои слова - это почти цитата из чятика в котором крутые ребята типа Тода Мотто и Аурелио де Роза рассказывают о своём отношении к $.
Первоначальной функцией jQuery была нормализация DOM. То есть например если в IE был метод attachEvent, а в остальных браузерах - addEventListener, то задачей jQuery было выбрать нужный метод и предоставить пользователю доступ к нему через свой интерфейс - функцию $.fn.on. В своё время jQuery был почти обязательным для веба, он обеспечивал совместимость.
Сейчас основные функции DOM достаточно унифицированы (например у querySelectorAll поддержка 97.97%), поэтому на данный момент jQuery является не более чем одним из самых простых и элегантных инструментов для манипуляции DOM. JQuery конечно сам по себе крутой - он предоставляет очень удобные и лаконичные способы для реализации анимации, AJAX, обработки наоборов элементов - но всё же в наше время jQuery не является чем-то обязательным, его по вкусу используют в проектах менее сложных, чем веб-приложения.
Если предполагаемый фронт сайта достаточно прост, то вы вряд ли найдёте что-то проще и удобнее чем jQuery, но в то же время можно спокойно обойтись без него и реализовать нужные функции собственными силами. То есть по сути сегодня jQuery это инструмент который сильно упростит и ускорит разработку небольшого проекта, не более.
Кроме того jQuery логичен и понятен - как уже ниже заметил Дмитрий "Demian Smith", начать использовать jQuery вы можете в любую минуту, все недопонимания решаются подглядыванием в документацию.
Лично мне кажется, что вообще тратить время на целенаправленное изучение jQuery стоит только в образовательных целях, например чтобы перенять некоторые приёмы программирования которые используют разработчики jQuery. А если вы и так уже используете jQuery для разработки, то вполне можно переключиться на более интересные вещи. В частности, имеет смысл глянуть на то что делает Юрий kangax Зайцев, в том числе Perfection Kills и всевозможные его около/образовательные статьи.
Pavel_Proca: берёте все item и проверяете текст keywords на наличие ключевой строки. Не знаю, что еще тут объяснять, можно например каждый item, в котором попалось совпадение, в массив. В итоге на выходе получится массив элементов, в тексте keywords которых были найдены совпадения. Или я опять что-то не понял?
именно самое: я не особо разбираюсь в PHP, но из кода видно, что вы проверяете не POST, а REQUEST. В любом случае никак не помогу вам здесь, разве что вот скопирую что сам нагуглил - используйте file_get_contents('php://input').
именно самое: во-первых, это не тот запрос, запрос из описания должен иметь "register.php" в конце. Во-вторых, вы это скопировали из браузера. Посмотрите что получил сервер. Если он у вас на PHP, то можете создать тестовый скрипт с именем register.php и вывести содержимое входа, file_get_contents('php://input').
Хотя проверить не сложно: прямо на этой странице в консоли выполните -
После этого зайдите в Network и посмотрите два последних запроса - GET ушёл на "https://toster.ru/?asd=2" и без тела, а POST ушёл на "https://toster.ru/" с вот этими данными в теле (FormData): asd: 2