将自定义 class 动态添加到 dc.selectMenu; IE11删除它
add custom class dynamically to dc.selectMenu; IE11 removes it
当动态添加自定义 css 类 到 dc.selectMenu 时,IE11 会在应用过滤器时将它们踢出。现在我使用 renderlet 再次将它们推入。由于添加了填充或 widths/heights.
,这会导致 "glitches"/移动内容
您可以通过 select 在我的 block 中的 select 框中选择一个选项来重现该问题。
这是一个错误吗?有谁知道不会导致这些故障出现的更清洁的解决方法?
我们发现 IE11 实际上 crashes on Win8 if you try to update a selectMenu! So we only render, don't attempt to redraw select该浏览器上的菜单。
这就是您需要重新申请的原因。
在试验中,我发现只需移动就足够了
.on('renderlet', ...
到 selectMenu
,它可以说属于那里(因为它正在修改那个小部件)。我认为这是可行的,因为 select 菜单不使用任何转换,也没有延迟。
不过,更一般地说,在 dc.js 的任何现代版本中,您确实应该使用 pretransition
事件,该事件在任何转换之前触发。总而言之:
selectMenu.on('pretransition', function(chart){
selectMenu.select('select').classed('uk-select', true);
});
虽然这是一个非常酷的词,但 renderlet
很少是适合收听的事件。您会在很多示例中看到它,因为它可以追溯到 dc.js 的早期版本,但它发生在所有转换完成之后。
如果您使用 pretransition
,您将有机会在浏览器完全刷新之前更改内容。
当动态添加自定义 css 类 到 dc.selectMenu 时,IE11 会在应用过滤器时将它们踢出。现在我使用 renderlet 再次将它们推入。由于添加了填充或 widths/heights.
,这会导致 "glitches"/移动内容您可以通过 select 在我的 block 中的 select 框中选择一个选项来重现该问题。
这是一个错误吗?有谁知道不会导致这些故障出现的更清洁的解决方法?
我们发现 IE11 实际上 crashes on Win8 if you try to update a selectMenu! So we only render, don't attempt to redraw select该浏览器上的菜单。
这就是您需要重新申请的原因。
在试验中,我发现只需移动就足够了
.on('renderlet', ...
到 selectMenu
,它可以说属于那里(因为它正在修改那个小部件)。我认为这是可行的,因为 select 菜单不使用任何转换,也没有延迟。
不过,更一般地说,在 dc.js 的任何现代版本中,您确实应该使用 pretransition
事件,该事件在任何转换之前触发。总而言之:
selectMenu.on('pretransition', function(chart){
selectMenu.select('select').classed('uk-select', true);
});
虽然这是一个非常酷的词,但 renderlet
很少是适合收听的事件。您会在很多示例中看到它,因为它可以追溯到 dc.js 的早期版本,但它发生在所有转换完成之后。
如果您使用 pretransition
,您将有机会在浏览器完全刷新之前更改内容。