gpt4 book ai didi

javascript - 为什么模板 div 在 afterRender 中显示为 ":hidden"?

转载 作者:行者123 更新时间:2023-11-28 16:30:32 25 4
gpt4 key购买 nike

为什么模板 div 在 afterRender 中显示为“:hidden”?

代码如下:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="js/jquery.tmpl.js"></script>
<script src="js/knockout-1.2.1.debug.js"></script>
<script>
$(document).ready(function() {
m = function (name)
{
this.name = name;
}

viewModel = {
a : ko.observableArray(),
sparkie : function (elements) {
div = elements[0];
console.log($(div).is(':hidden'));
},
}

ko.applyBindings(viewModel);

viewModel.a.push(new m('oh-no'));
});
</script>
</head>
<body>

<script type="text/html" id="tpl">
<div> ${ $data.name } </div>
</script>

<div data-bind='template: { name: "tpl", foreach: a, afterRender: sparkie }'></div>

</body>
</html>

最佳答案

当在foreach模式下调用afterRender进行模板绑定(bind)时,元素还没有被添加到DOM中。进行了一些额外的处理以确保有效地添加/删除节点。

但是,当使用 foreach 选项在元素进入 DOM 后执行代码时,您可以改用 afterAdd 回调。

关于javascript - 为什么模板 div 在 afterRender 中显示为 ":hidden"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207294/

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