Как правило, в чистом js или jquery или в контексте рельсов, как вы получаете элемент DOM, который был нажат?Как получить нажатый элемент DOM?
Обычно вы делаете что-то подобное, что позволяет использовать $(this).whatever_method
$(#something).on('click', function()
{
$(this).do_something;
}_;
Но в моем случае, у меня есть ссылка в моем HTML, удаленный: верно, и в моем контроллере я вынести JS. erb-файл. В таком сценарии все javascript-коды в файле js.erb выполняются. Нет места для прослушивателя кликов, поскольку единственная причина, по которой этот файл js.erb выполняется, состоит в том, что что-то уже было нажато. но я хочу выбрать элемент DOM, который был нажат. Как мне это сделать?
Я не хочу просто выбирать его вручную, так как это не очень динамично или многоразово (плюс, мне нужно будет вводить логику, чтобы выбрать правильный вариант).
HTML
<%= link_to "text", send(some_path, @votable, vote_type: "#{s.name}"), remote: true, class: "option" %>
<%= link_to "text", send(some_path, @votable, vote_type: "#{s.name}"), remote: true, class: "option" %>
Контроллер
def action
render 'shared/vote'
end
/views/shared/vote.js.erb
// how to obtain the link that i clicked in the html file (i.e. the first `".option"` link rather than the second.
// would using `$(this)` here, work? it seems wrong.
Что делает ваш контроллер задней панели при создании клиентской стороны слушателя событий? Опубликуйте соответствующие html и объясните проблему, имеющуюся у вас в ссылке на источник на стороне клиента – charlietfl
, поскольку в этом случае избыточное добавление прослушивателя кликов излишне. Я вызываю файл js.erb для выполнения, щелкая ссылку, направляющую маршруты в файл js.erb. – ahnbizcad
Если бы я включил javascript в папку с ресурсами, я бы добавил слушателей событий щелчка и выполнил его блок кода при нажатии. Но в этом случае файл js.erb, представляющий собой представление, отображаемое контроллером, выполняется немедленно. Я думаю, что это означало бы добавление слушателя событий, это не правильный путь, не так ли? – ahnbizcad