我对铆钉有点新意,我不完全理解它,所以我发现这似乎是一个非常基本的事情,但我不能这样做。
我正在尝试执行一些仅在铆钉完成绑定后才运行的jQuery? (它是$()。每个在铆钉将列表绑定到rv-each li元素后创建的每一行上启用click事件)
它不起作用,但是如果我尝试在页面完成加载后和铆钉完成绑定后(在浏览器控制台上)手动调用该函数,那么一切都很好。
答案 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>