- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直试图让 Isotopejs 和 Knockoutjs 一起工作。所以,到目前为止,它一直在流畅地工作,除非我需要向 dom 添加元素然后需要删除它们。
我已将问题追溯到此方法内部:
ko.utils.setDomNodeChildrenFromArrayMapping = function (domNode, array, mapping, options, callbackAfterAddingNodes) { .. }
哪个在调用这个方法
fixUpVirtualElements(lastMappingResult[lastMappingResultIndex].domNodes);
fixUpVirtualElements 方法正在删除我需要在 beforeRemove 事件中使用同位素删除的 dom 节点; foreach 绑定(bind)调用未获取需要删除的元素。
我已经阅读了 knockout 中该方法的注释。但我不明白它们的含义,因为我没有任何领域知识来了解它所谈论的内容。
任何人都可以看看我最新的 jsfiddle,让我知道为什么 fixUpVirutalElements 正在删除我需要传递给 beforeRemove 事件的元素。
http://jsfiddle.net/evanlarsen/C5y6G/
有人可以修复这个 jsFiddle 以使 2 个库一起工作。
谢谢,
埃文·拉森
最佳答案
我不是同位素专家;我知道它的作用,但我不知道它的算法,但是我对 knockout.js 的来源有深入的了解。现在可能的问题是同位素操纵了由 knockout 模板绑定(bind)创建的dom节点。 knockout.js 不允许其他程序接触由模板创建的 DOM 节点。所有的 knockout.js 算法都假定更改模板创建的 dom 节点的唯一方法是操作绑定(bind)到模板的数组。如果有其他东西直接操纵该节点,无论是通过添加节点、删除节点还是(如在同位素的情况下)重新排序它们......所有 knockout js 算法都会发疯......这意味着删除的节点不会消失,一些节点是重复的...等等。
- - - - - - - - - - - - 更新 - - - - - - - -
解决了
只需替换:
self.serviceAdded = function(el) {
if (el && el.nodeType === 1) {
$('#container').isotope('insert', $(el));
}
};
self.serviceAdded = function(el) {
if (el && el.nodeType === 1) {
$('#container').isotope('appended', $(el));
}
};
关于knockout.js - Isotope 和 Knockout js 无法删除动态添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476116/
Isotope 将此样式添加到项目中: position: absolute; left: 0px; top: 0px; -webkit-transform: translate3d(0px, 0px
我结合使用 Bootstrap 和 PHP 来创建投资组合部分。 我有大约 12 个元素,我想在每一行显示其中的 4 个。 问题是无论我做什么,单位都粘在容器的左侧,我似乎无法将它们居中,即使在 SO
我有一个同位素项目,当有人在其中发表评论时,它的高度会增加。当它生长时,我如何告诉主同位素容器随它一起生长?现在正在发生的事情是,随着同位素项目的增长,同位素容器保持其在调用 $(".home_mai
是否可以在页面上多次使用同位素,即对不同的数据集使用不同的文件管理器? 似乎代码需要使用某些ID,例如无法更改的“ #options”。 为了实现此目的,我需要对代码进行哪些更改? 最佳答案 有可能的
我正在使用 Isotope 插件和 Infinite Scroll 插件。使用默认设置无限滚动会自动触发加载新元素,这很好,但是,我宁愿有一个按钮“加载更多图像”。 我只缺少一小段代码,可以从无限滚动
我正计划使用出色的同位素插件显示联系人列表,然后对其进行过滤。我的问题是,它适用于较小的数据集,但我不确定将其扩展为1000多个数据的最佳方法。 到目前为止,我的想法是: 加载一个随机子集,然后在单击
我一直在使用 jQuery 的同位素插件,我的主页遇到了一些问题,它需要两个同位素实例。 它们都有不同类型的元素,并且保存在自己的容器中,但是当我单击第二个同位素实例上的过滤器时,它也会尝试过滤第一个
我在页面上有一个基本的照片布局(用于作品集)。有两种不同尺寸的图像 block ,较大的图像 block 与较小的图像 block 成比例,并且正好是宽度和高度的两倍, block 或窗口之间没有边距
我已经使用很棒的 jQuery Isotope 插件设置了一个员工简介页面。 布局是标准的 4 列网格,所有项目的大小相同。当用户单击某个项目时,该行中的前一个项目将使用“插入”方法附加到布局中,然后
我正在使用 jquery 同位素和无限滚动,并且想要使用图像预加载器 我使用的图像预加载器是这样的:Image preloader $('.image').preloader({ loader
我正在尝试使用 jQuery Isotope 对这些元素进行排序插入。我无法让我选择的选项与左上角对齐,它只是移动到网格的底部。我查看了 sortAscending 选项,但它破坏了我放置内容的顺序。
如何将自定义类添加到此 jQuery 同位素过滤并计算同位素过滤的项目: $(function(){ var $container = $('#wrap-planspiel'),
我开始在我的项目中使用很棒的 JQuery Isotope 插件。一切都很好,但我在角钉选项方面遇到了一个问题。 我的masnory网格中的每个元素都有固定宽度(220px + 5边距)和随机高度(取
我的网站出现问题。我在 IE8/9 上遇到网页错误: Object doesn't support this property or method 'isotope' Line: 47 Char: 3
我已经看到很多关于此的问题但没有答案(至少没有一个对我有帮助)。 我的设置非常简单 - 一个带有图像的流体容器(没有固定宽度)。 我在 CSS 中设置了每个 div 项目占 25%,并且我在其中设置了
我在两个不同的部分中有这些复选框: 55+ Exclusive All-Ages Classic Homes NVHo
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我在 http://pressedweb.com/portfolio 制作了一个我非常满意的作品集,但是当我调整窗口大小时,它不会像本例中那样重新组织容器项目: http://isotope.meta
在 David DeSandro 的有趣同位素实现列表中,有一个 http://www.wonderfulwebsolutions.net/单击元素后显示其他内容(图像、文本、链接等)。虽然作为 jQ
如何在 beautiful-beautiful jQuery Isotope 中覆盖自动左对齐(Source on GitHub)? 谢谢! 最佳答案 您有两个选择:重新设计 Isotope 的布局逻
我是一名优秀的程序员,十分优秀!