我对铆钉有点陌生,我不完全理解它,所以我发现这似乎是一件非常基本的事情,但我做不到。
我正在尝试执行一些只在铆钉完成绑定之后才运行的jQuery?(它是一个$().each,它支持在铆钉将列表绑定到rv-每个li元素之后创建的每一行的单击事件)
它不能工作,但是如果我尝试在页面加载完毕和铆钉完成绑定后(在浏览器控制台上)手动调用函数,那么一切都很好。
发布于 2014-12-08 17:49:53
您可以在0 timeout内完成铆钉绑定之后包装要执行的代码,以便将其推送到调用堆栈的底部,并在现有任务完成后执行。
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 rendereddiv {
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>
https://stackoverflow.com/questions/25145345
复制相似问题