Как реализовать тэг JS, чтобы стрелять по клику в коде Eruby? - PullRequest
0 голосов
/ 28 августа 2018

Мне нужно, чтобы этот кусок js срабатывал при событии щелчка:

"_LT._trackEvent(_eventType.clickThrough)"

Необходимо добавить его в этот тег eruby, в котором уже есть событие onclick:

<%= submit_tag 'Send enquiry', :class => "BtnSubmit", :onclick => list_event(params[:item_key])%>

Как бы я поступил так?

1 Ответ

0 голосов
/ 28 августа 2018

Атрибут onclick (и его значение) будет превращен прямо в атрибут HTML, поэтому, если вы хотите, чтобы он выполнял как обратный вызов в list_event, так и этот другой обратный вызов, вам нужно объединить их вместе таким образом, что JS будет запускать оба.

Я вижу несколько достойных вариантов для этого:

  1. Измените помощник list_event, чтобы он также запускал _LT._trackEvent(_eventType.clickThrough)
  2. Позвоните вашему существующему помощнику и добавьте строку в конец, как "#{list_event(params[:item_key])}; _LT._trackEvent(_eventType.clickThrough)"
  3. Создайте еще одного помощника с именем что-то вроде track_event и назовите их как "#{list_event(params[:item_key])}; #{track_event}"
  4. Создайте помощник track_event, а затем создайте третий помощник, чтобы обернуть их обоих, что-то вроде list_and_track_event, затем назовите его вместо

Лично я бы выбрал варианты 1 или 4 в зависимости от семантики двух обратных вызовов.

...