Mercurial > urweb
comparison jslib/urweb.js @ 600:d1cce194180d
Do proper insertion of dynamic content within nested DOM containers
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 11 Jan 2009 10:41:38 -0500 |
parents | 4c2c740c6931 |
children | 7c3c21eb5b4c |
comparison
equal
deleted
inserted
replaced
599:889dc9fceb3a | 600:d1cce194180d |
---|---|
32 reZ(); | 32 reZ(); |
33 | 33 |
34 return s; | 34 return s; |
35 } | 35 } |
36 | 36 |
37 function myParent() { | |
38 var pos = document; | |
39 | |
40 while (pos.lastChild && pos.lastChild.nodeType == 1) | |
41 pos = pos.lastChild; | |
42 | |
43 return pos.parentNode; | |
44 } | |
45 | |
37 function dyn(s) { | 46 function dyn(s) { |
38 var x = document.createElement("span"); | 47 var x = document.createElement("span"); |
39 x.innerHTML = s.v; | 48 x.innerHTML = s.v; |
40 document.body.appendChild(x); | 49 myParent().appendChild(x); |
41 s.h = cons(function() { x.innerHTML = s.v }, s.h); | 50 s.h = cons(function() { x.innerHTML = s.v }, s.h); |
42 } | 51 } |
43 | 52 |
44 function inp(t, s) { | 53 function inp(t, s) { |
45 var x = document.createElement(t); | 54 var x = document.createElement(t); |
46 x.value = s.v; | 55 x.value = s.v; |
47 document.body.appendChild(x); | 56 myParent().appendChild(x); |
48 s.h = cons(function() { x.value = s.v }, s.h); | 57 s.h = cons(function() { x.value = s.v }, s.h); |
49 x.onkeyup = function() { sv(s, x.value) }; | 58 x.onkeyup = function() { sv(s, x.value) }; |
50 } | 59 } |
51 | 60 |
52 function eh(x) { | 61 function eh(x) { |