gpt4 book ai didi

javascript gridstack框架延迟加载

转载 作者:行者123 更新时间:2023-11-28 05:08:34 27 4
gpt4 key购买 nike

我想使用 gridstack 创建一个带有小部件的页面。我的问题是当我“懒惰”加载widgeds时,gridstack不会初始化这个新的dom节点。 (它们不可移动)有人可以解释一下我如何正确地做到这一点吗?我认为我的问题是 $('.grid-stack').gridstack(options);正如我在这里看到的那样,仅执行一次:https://github.com/troolee/gridstack.js/blob/master/src/gridstack.js#L1727

或者是否有一个框架已经意识到“延迟”加载。

index.html:

<div class="grid-stack" id="widgeds">
<div class="grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled"
data-gs-x="0" data-gs-y="0"
data-gs-width="1" data-gs-height="1">
<div class="grid-stack-item-content ui-draggable-handle">Item 1</div>
</div>
<div class="grid-stack-item"
data-gs-x="1" data-gs-y="0"
data-gs-width="1" data-gs-height="1">
<div class="grid-stack-item-content">Item 2</div>
</div>
</div>
<script type="text/javascript">
var girdstackRefresh = function() {
var options = {
cell_height: 200,
vertical_margin: 10
};
$('.grid-stack').gridstack(options);
}
$(function () {
girdstackRefresh();

loadWidged('/widgeds/chat', function() {
girdstackRefresh();
});

});
//function for lazy loading:
var widgeds = {};
function loadWidged(srcUrl, onloaded) {
$.get(srcUrl+"/meta.wjs", function(meta) {
code = "var foo = function() { return "+meta+"; }\nfoo();";
widged = eval(code);
if(widged.singleton) {
if(widgeds[widged.uid]) {
throw({'message' : 'Error widged can only be loaded once'});
}
}
widged.url = srcUrl;
widged.init.bind(widged);
var ui = $('<div class="grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled" data-gs-x="5" data-gs-y="1" data-gs-width="4" data-gs-height="2">')
$("#widgeds").append(ui);
widged.dom = ui;
widged.init();
widgeds[widged.uid] = widged;
onloaded();
});
}
</script>

楔形示例:

聊天/meta.wjs:

{
"uid" : "SockIoChat",
"singleton" : true,
"init" : function() {
console.log("debug:");
console.log(this.url);
// $.loadCSS('style.css');
this.dom.load(this.url+"/chat.html")
}
}

聊天/chat.html:

<div class="grid-stack-item-content ui-draggable-handle">Item 2</div>

最佳答案

完成延迟加载后只需加载它作为回调或其他东西,或者使用 setTimeout 函数来初始化它。

关于javascript gridstack框架延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41558141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com