Готовое событие для шаблонов - PullRequest
1 голос
/ 14 февраля 2020

В JsViews я могу связывать события следующим образом:

<li id="myElement" data-link="{on 'click' eventHandler}">Some Content</li>

Это выполнит метод "eventHandler" после щелчка. Но мне нужно событие, которое будет запущено при загрузке шаблона. Я пытался "готов" или "показать", но ничего не работает. Есть ли событие, которое может справиться с этим?

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

{on xxx eventHandler} обрабатывает события HTML элементов , такие как события мыши, отправка, изменение, размытие и т. Д. c.

С JsView загрузка шаблона происходит непосредственно в результате вашего собственного кода, вызывающего метод link . Таким образом, элементы в отображаемом шаблоне будут отображаться во время этого вызова и сразу после того, как вы сможете запустить любой код, который хотите вызвать, после рендеринга и связывания, например, используя jQuery, чтобы найти свой элемент <li>, и воздействовать на элемент.

JsViews также предоставляет множество событий жизненного цикла для тегов , поэтому, если вы хотите, вы можете создать собственный тег для обработки этих событий:

Например, попробуйте запустить следующий код:

<span id="result"></span>

<script>
var data = {};

$.views.tags("test", {
  attr:"none",
    render: function(data) {
      debugger;
    },
    onBind: function(tagCtx, linkCtx) {
      var elem = this.parentElem;
      elem.textContent += " added text";
    }
  });

  var myTmpl = $.templates('<ul><li id="myElement" data-link="{test}">Some Content</li></ul>');

myTmpl.link("#result", data);

$("#myElement").css('color', 'red');
</script>
0 голосов
/ 16 февраля 2020

Вы можете использовать событие onload: -

https://www.w3schools.com/jsref/event_onload.asp

и присоединить его к самому шаблону. Если вы ограничены в своих возможностях или вам нужно сделать это определенным образом c, объясните сценарий использования и почему вы хотите сделать это определенным образом, и мы постараемся помочь. Всего наилучшего,

Фил

...