IE8 的淘汰赛 - 失去点击绑定
Knockout with IE8- losing click binding
使用 Knockout v2.3.0:
我有一个部分,我使用"with:modelName"绑定到模型。
在该部分中,我构建了一个数字递增器:
- 带有减号的灰色按钮
- 显示值的输入字段,
- 带有加号的灰色按钮
基本上,如您所料,单击减号会减少计数器,而单击加号会递增计数器。
它适用于所有浏览器,除了IE8(也许IE7也是如此(。
在IE8中,它使用清除缓存可以正常工作。 但是,如果刷新页面,则第一个按钮不再有效。 基本上,在后续页面加载时,该字段上根本没有点击绑定。
我最初试图让每个按钮使用相同的函数并传递不同的字符串:"向下"与"向上"。 但出于某种原因,我认为IE无法处理这个问题。
所以,现在,我已经构建了单独的函数:decrementChildCount(( 和 incrementChildCount((。
但同样的事情发生了。 IE8 可以很好地从清除的缓存中加载页面。 但是随后的页面加载会使其失去单击绑定 - 仅适用于第一个按钮。
当我在原始标记上方添加更干净的标记版本时,我发现了另一件事(所以我有两组按钮字段按钮组(。
现在,第一个按钮失去了它的点击绑定,但所有其他按钮都工作正常 - 即使是原来的减号按钮,因为它不再是该部分中的第一个按钮。 该减号按钮现在可以在后续页面加载中正常工作。
这是怎么回事? 为什么第一个点击绑定按钮会在后续页面加载时失去其点击绑定?
为了解决这个问题,我真的不想有一个隐藏的虚拟点击绑定按钮,只是为了让"真正的"第一个按钮工作......
--斯科特
尝试这样做以在短期内找到您的问题,并提出长期纠正它的解决方案 -
将数据绑定更改为此 -
data-bind="with: $data.modelName"
如果模型名称为空,则不显示任何内容,如果不是,则不显示模型名称。
接下来,预标记以查看它何时或为什么消失 -
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 数据绑定:'系统Char'不包含名为'xxxxx'
- IE8 的淘汰赛 - 失去点击绑定
- 为什么我在构造函数中附加“this”的变量会失去其绑定
- 当css绑定更新时,Textarea失去值
- 如何在事件失去绑定后才绑定它
- AngularJS在JS表单插件渲染后失去了双向绑定