JQuery :: Propagated Event Object Is Missing Properties?
Aug 30, 2010
This object was passed to my click event handler. Why are so many properties missing? The click event came from an <a> in a <li>, propagated down to the <ul> on which the handler was set.
If I click on the <ul>, the event object looks "normal".
how to add extra properties to html elements as I was storing data in html attributes. After looking at some others code including Raphael and this addEvent code. [URL] They seem to treat objects just like an array. obj[property] = value; This would have been extremely helpful to know previously as I have needed to be able to include variables in property names - but have resorted to making the whole thing a string and calling exec() on it.
I have a problem, when I load jquery.js from local, my test server is Apache 2.2.14 and PHP 5.3.1. The code is : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL]"> <html xmlns="[URL]"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery Starterkit</title> <script language="javascript" src="lib/jquery-1.4.2.min.js"></script> <script language="javascript"> $(function() { $("input").click(function(){ alert('Hello World!'); }); }); </script> </head> <body> <lable>pwd : </lable><input type="text" name="text" value="name"/> </body> </html>
The browser alert (Missing Objects) in localhost. But if I change src to '[URL]', or double click html and run in the browser, it takes effective. So I think there are some problems in my Apache conf file.
I've ammended my code now so that I'm using objects, constructors and prototypes.
If I use the standard constructor.prototype.functionname = (){......} type of setup it works okay.
However I'm now experimenting with overwriting the prototype with a literal. As in the code below. i.e. constructor.prototype = {functionname : function() .......
Doing it this way my first new object instance fails. The subsequent new objects are fine.
I ran a check on the properties of the 1st object with '!hasOwnProperty and name in' and the result is that the prototype (or pointer to a prototype) is missing.
So the first new object of FontTrans (oH) has
Code: 1 property is Heading . . 9 property is Delay
I have tried this using both frames and window.open(). In either case, if the new content comes from a different site than the original (or comes from a site and original is a local file) the document object is inaccessible. The new window object seems to have no document and no all[] or just about anything else useful. If the new content came from the same site (or local computer) as the original, everything seems to be where it belongs. I have looked all over and can find no references to this problem. Is this some security issue that everybody but me knows about?
I am seeing this on IE 6.0.2800.1106. The files are created in notepad so there should be no surprises there.
i'm looking for the best way to use global properties that defined at class level insid event handler functions.
for example : function MyClass() { this.v1 = "hello"; this.v2 = {name: 'joe', age:'30'}; this.link1 = $("<a/>", {id: "link1"});
[Code].....
actually, in link1Handler 'this' returns to link1 not to main class. so how to get class properties or functions inside the private functions of the same class?
I have an object on the document element that allows for other components to register with it, i have a custom event something along$(document).bind("register",function(thechild)..So in the child object when they are created i call$(document).trigger("register",this);And indeed i get the DOM object. However i'm looking for the plug in object, i want to be able to call methods on the passed childobject and access it's Config.Does that make sense? How can i write a plug in that is applied to various objects that also registers itself with an 'overseer' object on the document element in such a way that i can allow that overseer object to call methods on any registered child objects?
how can I detect if mouse cursor is over or out of some element? I am running a animation, which I don't want to run or to stop itself if cursor gets to area.
i'd like to know objects properties and/or methods.
saying i do have an object "o" being part of the dom (a div or an ul...) how could i list (introspection) all the properties and methods attached to this object ?
i know it is possible in javascript but don't remeber how to ...
Do many programmers remember most of the object properties and methods or do they use IDE or references to find those specific objects. I'm starting to learn Javascript and seeing all the different type of objects available can be depressing. :(
I am fairly familiar with the concept of Objects and their properties and methods, but javascript being object based as opposed to object oriented has me stumped on how to access an object's properties from an onclick event handler created for another object created within the original object.
In the example below, I have a constructor function called anyObj. to which I pass an object reference to an element.
anyObj has 3 properties and one function increaseWidth()
increaseWidth() creates a new button with an onclick event handler and this is where I have a problem.
The onclick function needs to increase the value of anyObj's this.width property. I originally had a line this.width += 10; in the onclick but quickly realised why this wasn't working because the this in the onclick function refers to the new button object and not the this.width property of anyObj.
The workaround I have used, and it works, is to make a copy of all the this.xxxxx properties. eg. width = this.width; and use the width variable in the onclick as you can see below. This "workaround" works fine but doesn't feel ideal to me.
So is there a better way to access the anyObj()'s properties from within the onclick function than the way I have done it? Obviously I would prefer to not have to make copies of all the anyObj() properties like I have to make them accessible to the onclick function.
Say x in a XML Http Request Object ... meaning it's either XMLHttpRequest (firefox) or ActiveXObject (IE)
This line of code works in firefox... x.someProp = "someValue"; alert(x.someProp);
But in IE I get "Object doesn't support this property or method" I need to place a custom property on the object. Is there any way I can do that in IE?
I've created an object and within this object, I've added an eventlistener. But the problem now is that after addEventListener is being called to access a callback function, the callback function is not able to access the properties within its own class. Code:
I am fairly familiar with the concept of Objects and their properties and methods, but javascript being object based as opposed to object oriented has me stumped on how to access an object's properties from an onclick event handler created for another object created within the original object.In the example below, I have a constructor function called anyObj. to which I pass an object reference to an element.
anyObj has 3 properties and one function increaseWidth()
increaseWidth() creates a new button with an onclick event handler and this is where I have a problem.The onclick function needs to increase the value of anyObj's this.width property. I originally had a line this.width += 10; in the onclick but quickly realised why this wasn't working because the this in the onclick function refers to the new button object and not the this.width property of anyObj.
The workaround I have used, and it works, is to make a copy of all the this.xxxxx properties. eg. width = this.width; and use the width variable in the onclick as you can see below. This "workaround" works fine but doesn't feel ideal to me.So, what I am asking advice on is, is there a better way to access the anyObj()'s properties from within the onclick function than the way I have done it? Obviously I would prefer to not have to make copies of all the anyObj() properties like I have to make them accessible to the onclick function.
Code:
function anyObj(divObj){ this.elem = divObj; this.width = 50;
Well, I've been working with JS for three years and have a great experience here. But! I still have no really acceptable answer to the following question:
What is the principle difference between declaring methods/properties in the constructor function body and via prototypes.
Are there any real GURUs? Let's discuss the issue.
In JavaScript 1.5, objects can use special getter and setter functions [1] for properties. However, these only seem to be implemented in Gecko and, AFAICT, don't seem to be part of ECMAScript.
Is there an alternative syntax I can use that is standardised in ECMAScript and also (preferably) interoperably implemented in several browsers? Or, do I have to use ordinary getFoo() and setFoo() functions. Code:
I want to programmatically list all properties of JS object from C++ code (I am using Mozilla's JSAPI). I know I can go up the prototype chain with JS_GetPrototype, then enumerate each object's own properties with JS_Enumerate.
I have an object: Myobject and properties for the object: Myobject.color, Myobject.width, Myobject.height The scripts returns TRUE if I query Myobject.color or Myobject.width etc. I want to loop through de properties like so:
Code: var properties = ['color', 'width', 'height'] for (var i=0; i<properties.length; i++) { Myobject.properties[i]; // Returns UNDEFINED }
I've got an image gallery in which users can navigate between the next and previous image by clicking on the right or left half respectively of the current image. When the mouse is over the left half an arrow pointing to the left is shown on the image and when on the right an arrow to the right. It works fine if i use inline javascript but i'm trying to achieve the same effect unobtrusively and with an addEvent function. The onmouseover part works fine but from the function that fires on the onmouseout event i get the following error in Firefox and the arrow is not hidden:
I don't know why but after the animate() function it's like all the properties get wiped. PHP Code: bubble.prototype.expand = function() { var _this = this; this.mLeft = parseInt($(this.div).css('margin-left').split('px')[0]); this.mTop = parseInt($(this.div).css('margin-top').split('px')[0]); this.iWidth = $(this.iconImg).width();//icons dimensions this.iHeight = $(this.iconImg).height(); .....