首页 > 解决方案 > 模板的就绪事件

问题描述

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

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

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

标签: jsviews

解决方案


{on xxx eventHandler} 处理 HTML 元素上的事件,例如鼠标事件、提交、更改、模糊等。

使用 JsViews,模板的加载直接发生在您自己的代码调用链接方法的结果中。因此,渲染模板中的元素将在该调用期间被渲染,并且在您可以在渲染和链接之后运行您想要调用的任何代码之后立即渲染,例如使用 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>

推荐阅读