在浏览源代码时,我注意到'toggle'应该jQuery._data用来存储元素的状态.我检查的jQuery.cache对象中铬,发现元素的数据对象有另一个目标下它由字的jQuery前面添加一个数字,我猜唯一标识.但是,我没有看到关于元素状态的数据.简单{olddisplay: 'block'}.关于jQuery._data的目的以及它本身如何工作的任何线索?
我一整天都在盯着源头......请不要告诉我查看来源.我的眼睛和大脑会感谢你.
我正在实现一个 Wordpress 主题,其中内容垂直滑入页面。为此,我需要先测量包含内容的 div 的大小,而不是先对其进行明显渲染。我试图在没有 Ajax 的情况下完成所有这些工作。
这是我迄今为止发现的:
我可以轻松加载文档,读取大小,然后使用 javascript 隐藏 div。不幸的是,有一个非常明显(并且不可接受)的闪烁,因为 javascript 没有足够快地隐藏 div。还有一个问题是,如果将图像放入内容中,我必须等到它们被渲染才能获得真实大小……没有 bueno。
另一种选择是使用 CSS 隐藏内容,但如果用户没有启用 javascript,他们只会盯着一个空白页面。
这把我带到了我现在的位置。
我有一段 javascript 在声明样式表后立即运行,它更改了样式表链接元素的位置,然后使用特定于 javascript 的样式表重新呈现页面。这解决了在读取大小之前必须隐藏内容的问题。
这是通过将包含内容的 div 绝对定位在页面 9999 像素之外来实现的。
#content {
position: absolute;
left: -9999px;
}
Run Code Online (Sandbox Code Playgroud)
此时,我使用 jquery 检索内容的高度,代码如下:
$('#content').height();
Run Code Online (Sandbox Code Playgroud)
问题是,返回的数字大小不正确,比实际内容小得多。当我将 css 更改为:
#content {
position: absolute;
left: 0px;
}
Run Code Online (Sandbox Code Playgroud)
它正确呈现。是什么赋予了??有我不知道的错误吗?这发生在 Chrome 和 Firefox 中。
你可以在这里自己查看http://thethechad.com/wordpress
- 更新 - - - - - - - - - - - - - - - - - - - …
这个问题与绩效有关.
如果我使用如下选择器
$('#myID a') // Does this find #myID and filter by a?
Run Code Online (Sandbox Code Playgroud)
或者我应该写这样的声明?
$('#myID').find('a')
Run Code Online (Sandbox Code Playgroud)
我不确定jQuery是否足够智能以首先使用ID执行此语句,或者它是否像CSS一样操作并从右向左读取.使用标签并不是一件大事,但是当你运行类似的东西时
$('#myID .myClass')
Run Code Online (Sandbox Code Playgroud)
它在性能上有很大的不同.