为什么这个jQuery插件初始化代码不起作用,除非我用setTimeout
包装它?
当我使用setTimeOut
时,一切都很好。
你能救我吗?
这不起作用:
Template.checker_one_item_time.onRendered(function(){
$('#time_custom_scroll').mCustomScrollbar({
setHeight: 244,
mouseWheel:{
enable: true,
axis: "y"
}
});
});
这有效:
Template.checker_one_item_time.onRendered(function(){
setTimeout(function(){
$('#time_custom_scroll').mCustomScrollbar({
setHeight: 244,
mouseWheel:{
enable: true,
axis: "y"
}
});
}, 2000)
});
答案 0 :(得分:1)
您是在渲染模板而不等待它依赖的任何订阅准备好了吗?您可能需要look at this pattern
您希望在订阅完成时初始化插件的另一个示例:
Template.listing.onRendered(function () {
var template = this;
template.subscribe('listOfThings', function () {
// Wait for the data to load using the callback
Tracker.afterFlush(function () {
// Use Tracker.afterFlush to wait for the UI to re-render
// then use highlight.js to highlight a code snippet
highlightBlock(template.find('.code'));
});
});
});