Прежде всего, какие-либо сообщения об ошибках в инструменте проверки браузера? Установили ли вы гем jquery-rails
, если нет, перейдите по ссылке ниже и установите его.
https://rubygems.org/gems/jquery-rails/versions/4.3.1
Во-вторых, это может быть связано с тем, что. live()
устарел и согласно версии 1.9 полностью удален.
Попробуйте вместо этого использовать обработчик событий .on()
.
В-третьих, это очень много кода, граничащего с небольшим количеством спагетти-кода для чего-то действительно простого. Что бы я сделал, чтобы упростить это:
$(".message").on("keyup", function () {
var maxlength = $(this).attr("maxlength")
var remaining = $(this).val().length
$(this).next().text(remaining + '/' + maxLengh)
})
Нет необходимости заключать его в $ (document) .ready (), слишком много $ (document) .ready () замедлит время загрузки (за счет увеличения времени сценариев) при обновлении приложения. В зависимости от того, как вы настроили ваше приложение rails для выполнения javascript, вы можете обернуть все ваши javascript / jquery в один большой $ (document) .ready (), который будет выполняться один раз , когда Обновление приложения.
Кроме того, .on () - это прослушиватель событий, который прослушивает и ждет, когда что-то произойдет, например, .on ("keyup", function (). Вы можете отключить прослушиватель событий, используя $(".message").off()
Немного чрезмерного совместного использования, но знание того, как слушатели событий и делегирование событий жизненно важно для написания хорошего jQuery.