diff options
| -rw-r--r-- | src/jqLite.js | 2 | ||||
| -rw-r--r-- | test/jqLiteSpec.js | 29 | 
2 files changed, 30 insertions, 1 deletions
| diff --git a/src/jqLite.js b/src/jqLite.js index c4a10a0b..2dd2ac47 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -132,7 +132,7 @@ function JQLiteAddClass(element, selector ) {  function JQLiteAddNodes(root, elements) {    if (elements) { -    elements = (!elements.nodeName && isDefined(elements.length)) +    elements = (!elements.nodeName && isDefined(elements.length) && !isWindow(elements))        ? elements        : [ elements ];      for(var i=0; i < elements.length; i++) { diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index e42e9f14..346017f1 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -224,6 +224,35 @@ describe('jqLite', function(){    });    describe('bind', function(){ +    it('should bind to window on hashchange', function(){ +      if (jqLite.fn) return; // don't run in jQuery +      var eventFn; +      var window = { +          document: {}, +          location: {}, +          alert: noop, +          setInterval: noop, +          length:10, // pretend you are an array +          addEventListener: function(type, fn){ +            expect(type).toEqual('hashchange'); +            eventFn = fn; +          }, +          removeEventListener: noop, +          attachEvent: function(type, fn){ +            expect(type).toEqual('onhashchange'); +            eventFn = fn; +          }, +          detachEvent: noop +      }; +      var log; +      var jWindow = jqLite(window).bind('hashchange', function(){ +        log = 'works!'; +      }); +      eventFn({}); +      expect(log).toEqual('works!'); +      dealoc(jWindow); +    }); +      it('should bind to all elements and return functions', function(){        var selected = jqLite([a, b]);        var log = ''; | 
