- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个页面,其中包含基于文本内容大小的一类可变高度的元素。在页面加载时,我需要将它们的高度都增加 20px。
var visibleposts = document.getElementsByClassName("post-contain");
for(var i =0; i <= visibleposts.length; i++){
visibleposts[i].style.height = visibleposts[i].offsetHeight + 20 + "px";
}
这是我使用的代码。我将它放在页面加载时运行的 init()
函数中。但是,我不确定它的工作情况如何,因为它是在 meteor 服务器上运行的。我把它装在 body 上了。像这样:
<head>
<script src="jquery-2.1.4.min.js"></script>
<script src="main.js"></script>
</head>
<body onload="init();">
</body>
<template name="FullFeed">
{{#each posts}}
<!-- <a href="whenisay://{{adjective}}/{{noun}}/{{user}}/{{likes}}/{{date}}/{{_id}}">-->
<a href="UnLiked.png">
<div class="post-contain">
<div class="chant">When I say <span class="varline">{{adjective}}</span> you say <span class="varline">{{noun}}</span></div>
<!--
<div class="author-box">
<p>By {{user}}<span class="spacer"> - </span>
<img class="heart" src="UnLiked.png" onclick="console.log('hello');"/>
</p>
</div>
-->
</div>
</a>
<div class="author-box">
<p>By {{user}}<span class="spacer"> - </span>
<img class="heart" src="UnLiked.png" onclick="console.log('hello');"/>
</p>
</div>
{{/each}}
</template>
如果你想调试它,它运行在http://whensayfeed.meteor.com
最佳答案
作为humble.rumble评论中提到,您的代码无法正常工作,因为在加载正文时,模板 FullFeed 还没有生成任何“.post-contain”div。
您不应该立即在 main.js 中执行修改模板生成的 DOM 的代码,而是使用 Template.myTemplate.onRendered回调注册函数。 更新: Meteor 的 Template.myTemplate.onRendered 不等待加载单个数据。加载所有元素后如何附加回调有很多解决方案。查看其他 StackOveflow 问题:
但是,这些都不是无缝且相当简单的。这就是为什么你可以使用 MutationObserver反而。在您的情况下,您想观察添加的 <a/>
元素进入 <body/>
, 然后找到 .post-contain
:
new MutationObserver(function (mutations){
mutations.forEach(function (mutation){
$(mutation.addedNodes).each(function (){
if (this.localName == "a")
var myNewDiv = $(".post-contain",this)[0]
});
});
}).observe($("body")[0], {childList: true});
由于我不熟悉模板 API,模板全局变量可能在文档加载之前不可用,在这种情况下,您将使用 JQuery 的 .ready( handler )
既然您包含了 JQuery,那么您也可以使用它来设置高度。尝试 .height( function ) .在您的情况下,它看起来像这样:
$(".post-contain").height(function (index, height) {
// Increase the height of all ".post-contain" divs
return (height + 20);
});
所有这些组合在一起然后产生以下结果:
$(function(){
new MutationObserver(function (mutations){
mutations.forEach(function (mutation){
$(mutation.addedNodes).each(function (){
if (this.localName == "a")
$(".post-contain",this).height(function (index, height){
return (height + 20);
});
});
});
}).observe($("body")[0], {childList: true});
});
我已经在本地 Meteor 安装上对此进行了测试。
对了,为什么要这样加上高度呢?然后您将不得不处理其他事件,例如 .resize() .如果您希望 div 具有基于内容的额外高度,为什么不使用 CSS padding
相反?
关于javascript - 添加到整个类的 offsetHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30813934/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!