模板的就绪事件

时间:2020-02-14 10:23:55

标签: jsviews

在JsViews中,我可以通过以下方式绑定事件:

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

单击后将执行方法“ eventHandler”。 但是我需要一个事件,在加载模板时会触发该事件。我尝试“就绪”或“显示”,但没有任何效果。有没有可以处理的事件?

2 个答案:

答案 0 :(得分:1)

{on xxx eventHandler} handles events on HTML elements,例如鼠标事件,提交,更改,模糊等。

使用JsViews,模板的加载直接由于您自己的代码调用link方法而发生。因此,已渲染的模板中的元素将在该调用期间已渲染,并且在渲染和链接后您可以运行要调用的任何代码后立即使用,例如使用jQuery查找您的<li>元素并对该元素执行操作

JsViews还提供了许多life-cycle events on tags,因此,如果您愿意,可以创建一个自定义标签来处理这些事件:

例如,尝试运行以下代码:

<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>

答案 1 :(得分:0)

您可以使用onload事件:-

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

,并将其附加到模板本身。如果您的选择有限,或者需要以特定的方式进行操作,请说明用例以及为什么要以特定的方式进行操作,我们将尽力提供帮助。 一切顺利,

菲尔