Я знаю, что использование JavaScript в партитурах - плохая идея, потому что страница будет загружать новый скрипт каждый раз, когда загружается новая частичная. Я знаю и прочитал this question, но его ответ не сработал для меня (установка скрипта в приложение/javascripts/application.js). Я думаю, что это потому, что я работаю с частицами, которые динамически генерируются на странице. Я думаю, что динамически генерируемая частица не реагирует на сценарий, загруженный на начальную страницу.Ruby on Rails - JavaScript в динамически сгенерированных партитурах
Например, у меня есть «Rule» div с входом выбора, который имеет скрипт, чтобы что-то делать, когда изменяется вход выбора. Это работает для каждого Rule div, создаваемого при загрузке страницы. Но тогда есть также кнопка «+» или «ДОБАВИТЬ», которая будет динамически генерировать больше разделов Rule, которые не отвечают на сценарий, если только этот скрипт не находится в частичном.
Есть ли хороший способ сохранить сценарий из частичного, если частичная динамическая генерация?
ОК, поэтому я предполагаю, что делегирование событий имеет какое-то отношение к использованию тела (в отличие от динамически генерируемого div). Поэтому «тело» знает, что его элементы выбора что-то делают с изменениями, и не имеет значения, когда они добавляются. Это верно? ... К сожалению, ваш код не работает для меня. Я скопировал это слово в слово, за исключением того, что я изменил «сделать что-то» на console.log («привет»); но я не мог получить «привет» для регистрации. – Isaac
У вас есть правильная идея. Код, который я вставил, не будет работать, если вы не смотрите на входы с селектором классов, который, как я полагаю, вы не являетесь. Замените «input.selector» на селектор для входов, на которые вы хотите следить за изменениями. – ptd
Извините! Мне пришлось работать над чем-то, что имело более высокий приоритет, прежде чем возвращаться к этому. Я чувствую себя глупо в том, что не знаю, как заменить input.selector. И еще одно: нужно было иметь слушателя внутри $ (document) .ready (function() {}); Сейчас он работает фантастически с моими динамическими частицами. Спасибо! – Isaac