Как я могу получить ruby данные для сохранения в javascript вызванных событиях?
У меня проблема с javascript переменные. Вероятно, это связано с тем, что у меня не было знаний об областях и используемой переменной, хотя я пробовал разные типы переменных. (Это мой первый бит настоящего javascript кода). То, как я вижу области в javascript, выглядит следующим образом: если оно объявлено в функции, вы не можете использовать его вне функции. Если вы объявляете это первым (вне функции), вы можете обновить значения в функции и использовать их снаружи, позже в другом теге. Что я и сделал.
Что я делаю: я перебираю набор имен, которые я получаю из ruby модели, здесь:
<% @items.each do |record| %>
Позже в моем коде я откройте другой скрипт html тег внутри этого .each:
<script> edit_items("<%=record.name%>") </script>
Эта функция 'edit_items' дает мне массив всех имен моих отношений записей. (Это объявлено в верхней части страницы)
y=[];
function edit_items(x){
y.push(x);
}
Причина, по которой я зацикливаюсь на этих элементах, заключается в создании прослушивателей для каждого из элементов (они предназначены для пользователей, поэтому будет Dynami c количество, соответствующее каждому пользователю). У меня есть ul с элементами li со ссылками на модальное всплывающее окно (html на той же странице).
Я пытаюсь сказать javascript, чтобы установить значение ввода (#name_box) в модальном к информации по ссылке нажал. Хотя существует несколько ссылок для одного текстового поля, поэтому я должен указать, какой идентификатор будет отправлен в поле. Внизу страницы:
$(document).ready(function() {
console.log("ready");
for (id = 0; id < y.length; id++){
console.log("starting li click events");
$("#" + y[id]).click(function () {
console.log("y: " + y[id]);
console.log("doc: " + document.getElementById(y[id]));
});
}
});
Я создаю прослушиватели событий для каждой ссылки, создаваемой с помощью этих динамических c данных из ruby массива. Проблема в том, что действие для клика не выполняется, пока страница не будет на стороне клиента. Я думаю, что вы не можете получить данные на стороне сервера (ruby) от слушателей на стороне клиента.
Я получаю это в console.log, когда нажимаю на ссылки:
y: undefined
admin:318 doc: null
admin:317 y: undefined
admin:318 doc: null
, что означает, что для меня y существует, но не установлено и do c не имеет значения ( не найден элемент с неопределенными данными).