Sha256: 954ec0f94786004646f2d10b4913a26761ab24ff66c61096e5a4a770ac30c8a1
Contents?: true
Size: 1.28 KB
Versions: 8
Compression:
Stored size: 1.28 KB
Contents
module Hyalite::DOM module Node def self.create(node) @classes ||= [nil, Element, nil, Text, nil, nil, nil, nil, nil, Document, nil, nil] if klass = @classes[`node.nodeType`] klass.new(node) else raise ArgumentError, 'cannot instantiate a non derived Node object' end end def document? false end def element? false end def text? false end def node_name `self.native.tagName` end def <<(child) `self.native.appendChild(child.native)` end def clear %x( var len = self.native.childNodes.length; for (var i = 0; i < len; i++) { self.native.childNodes[0].remove(); } ) end def parent if parent = `self.native.parentNode` Node.create(parent) end end def children Collection.new `self.native.childNodes` end def remove `self.native.remove()` end def next_sibling sib = `self.native.nextSibling` Node.create(sib) if sib end def on(name, &block) callback = Proc.new{|event| block.call(Event.create(event))} `self.native.addEventListener(name, callback)` end def ==(other) `self.native === other.native` end end end
Version data entries
8 entries across 8 versions & 1 rubygems