在rivets.js绑定完成后执行一些函数

时间:2014-08-05 17:57:42

标签: rivets.js

我对铆钉有点新意,我不完全理解它,所以我发现这似乎是一个非常基本的事情,但我不能这样做。

我正在尝试执行一些仅在铆钉完成绑定后才运行的jQuery? (它是$()。每个在铆钉将列表绑定到rv-each li元素后创建的每一行上启用click事件)

它不起作用,但是如果我尝试在页面完成加载后和铆钉完成绑定后(在浏览器控制台上)手动调用该函数,那么一切都很好。

1 个答案:

答案 0 :(得分:0)

您可以在0 timeout内完成铆接绑定后包装要执行的代码,以便将其推送到callstack的底部,并在现有任务完成后执行。


var bigArr = [];
for (var i = 0; i < 20000; i++) {
  /* ADJUST THIS untill you see the difference
                                       WARNING: Keep it under control
                                    */
  bigArr.push({
    count: i
  });
}
rivets.bind($("div"), { // bind rivets
  arr: bigArr
});


setTimeout(function() {
  console.log("rivets done it's thing!"); // executed when binding is done
}, 0);

console.log("Rivets..? Who!"); // executed before elements are rendered
div {
  display: inline-block;
  margin: 5px;
  padding: 5px;
  background: royalblue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/rivets/0.7.1/rivets.bundled.min.js"></script>
<div rv-each-item="arr">{item.count}</div>

相关问题