Note that there are some explanatory texts on larger screens.

plurals
  1. POJavascript library for event handling has strange 'undefined' error
    text
    copied!<p>I have been working on a javascript library for event handling. Here is some of the library's code:</p> <pre><code>01| (function(){ 02| var int, 03| Jist = function(s){ 04| return new Jist.fn.init(s); 05| }; 06| Jist.fn = Jist.prototype ={ 07| init : function(s){ 08| if(!s){ 09| return this; 10| } 11| else{ 12| this.length = 1; 13| if (typeof s === "object"){ 14| this[0] = s; 15| } 16| else if(typeof s === "string"){ 17| var obj; 18| obj = document.querySelectorAll(s); 19| this[0] = obj; 20| this.elem = this[0]; 21| } 22| return this; 23| } 24| }, 25| }; 26| Jist.fx ={ 27| event : function(event,callback,state){ 28| var dummy = (state) ? false : state; 29| for(var i=0; i&lt;this.elem.length; i++) { 30| this.elem[i].addEventListener(event,callback,dummy); 31| } 32| return this; 33| }, 34| } 35| Jist.fn.init.prototype = Jist.fn; 36| Jist.fn.init.prototype = { 37| print : function(txt){ 38| for(var i=0; i&lt;this.elem.length; i++) { 39| this.elem[i].innerHTML = txt; 40| } 41| return this; 42| }, 43| click : function(callback){ 44| Jist.fx.event("click",callback); 45| return this; 46| }, 47| }; 48| window.Jist = window._ = Jist; 49| })(); </code></pre> <p>All seems fine in that...</p> <p>And then On my webpage, here is what I have to test it out:</p> <pre><code>01| &lt;div id="enter"&gt;Begin!&lt;/div&gt; 02| &lt;script&gt; 03| _("#enter").click(function(){ 04| _("#enter").print("It worked!"); 05| }) 06| &lt;/script&gt; </code></pre> <p>Seems fine here too.</p> <p>It seems like this should work, but instead I get an error that reads: <code>'undefined' is not an object (evaluating this.elem.length)[line 29 in the library]</code></p> <p>Does anyone know how I can fix this error?</p> <p>Help is greatly appreciated.</p> <p>Thank you.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload