revert workaround for #29 in favor of key-based solution

This commit is contained in:
Leo Horie 2014-09-21 21:24:15 -04:00
parent aa23da4fd1
commit d32dd4adf5
2 changed files with 1 additions and 26 deletions

View file

@ -275,8 +275,7 @@ Mithril = m = new function app(window, undefined) {
for (var attrName in dataAttrs) {
var dataAttr = dataAttrs[attrName]
var cachedAttr = cachedAttrs[attrName]
//see #29 for the reason behind `activeElement` usage
if (!(attrName in cachedAttrs) || (cachedAttr !== dataAttr) || node === window.document.activeElement) {
if (!(attrName in cachedAttrs) || (cachedAttr !== dataAttr)) {
cachedAttrs[attrName] = dataAttr
try {
//`config` isn't a real attributes, so ignore it
@ -300,10 +299,6 @@ Mithril = m = new function app(window, undefined) {
else if (attrName === "className") node.setAttribute("class", dataAttr)
else node.setAttribute(attrName, dataAttr)
}
//part of fix for #29
else if (attrName === "value" && tag === "input") {
if (node.value !== dataAttr) node.value = dataAttr
}
//handle cases that are properties (but ignore cases where we should use setAttribute instead)
//- list and form are typically used as strings, but are DOM element references in js
//- when using CSS selectors (e.g. `m("[style='']")`), style is used as a string, but it's an object in js