Вызов функции JavaScript внутри элемента HTML и jinja2? - PullRequest
0 голосов
/ 28 сентября 2018

у меня есть этот код:

{% for review in reviews %}
   <div>
     {{ review.content }}
       by {{ review.username }}
       - timeDifference("{{ review.date_submitted }}")
   </div>
{% endfor %}

в 5-й строке находится функция timeDifference js, которая возвращает разницу во времени в тексте, я хочу вставить туда функцию js, как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

это решение, которое сработало для меня, вдохновлено ответом Раджи Саймонса и Как добавить событие onload в элемент div? :

<div id="review{{review.id}}">
   {{ review.content }} by {{ review.username }}
     -
   <p id="timeDifferenceElement{{ review.id }}"></p>
   <script type="text/javascript">
    timeDifferenceForDate( '{{ review.id }}', '{{ review.date_posted }}' );
   </script>

0 голосов
/ 28 сентября 2018

Выполнить функцию Js подобным образом невозможно.И что возможно во время загрузки, выполнить функцию javascript и выполнить DOM-манипуляции.

В HTML

<-- In for loop -->
<div onload="timeDifference( {{ review.id }}, {{ review.date_submitted }} );">
  <p id="timeDifferenceElement{{ review.id }}"></p>
</div>

В JavaScript

function timeDifference(id, date_submitted) {
  const timeDifferenceElement = document.getElementById("timeDifferenceElement" + id)
  // Do calculation
  ---
  timeDifferenceElement.innerHTML = "something from the calculation"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...