Can't Dynamically Grab Script Object Properties / Make It Possible?
Jun 20, 2010
I've got a javascript object is "is" that has dynamically populated properties. I make an ajax call to my database to grab usernames associated with unique ID's and populate the javascript. I can call a property directly like this: aler (is.softUser1) or alert(is.softUser2) and show the corresponding values. However since what is being returned from the database is dynamic I may need to call is.softUser5 or is.softUser8 so I need to do that call dynamically. code...
and that obviously doesn't work.
Is there a way that I can dynamically call that property based on whatever value "user" is?
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 am selecting an image as part of a html form. Once selected, jQuery assigns a user-defined attribute of the image to a hidden form variable and passes it to form handler. Problem is when I dynamically add images that can be selected. I am using live function to ensure that the dynamically added image is highlighted when clicked - but the user-defined attribute is not being grabbed by jQuery.
I think that when the page is first loaded, all the existing image attributes are loaded into the DOM, but when extra images are added with ajax, the DOM doesn't have the new attribute values, despite them appearing in the html on the page. I don't think I can use the live function in this instance, because an attribute is not an event. Out of ideas now. HTML/PHP, with jQuery:
I have written the code below. What it is supposed to do, is grab the HTML from a .NET panel (div) and make the changes and store them in a textbox, so that when the page is posted, the values are retained and can be re-read back to the .NET panel. I have found this script works in IE but doesn't work in FF. Now I know it is something I am doing wrong, but I can not work out what it is.
Code:
I have checked my syntax and I am sure it is correct. The only thing I can see that might be causing the problem is that I set final as the original and then I get the list of inputs.
From there I loop through and set the value of the inputs to the new values.
If I do an alert, the value shows what I would expect, but setting the store value as the final innerHTML doesn't appear to keep these values.
Could it be that once I pull the inputs from the final (placeholder = final.getElementsByTagName("input");) then changes I make to them do not affect the final variable?
I am currently working on a tween script that I am hoping to make so it allows the user to choose and object than the property it tweens, whether it be height or opacity.so currently my problem is getting the function to accept dynamic property selction.for example, the following.
Code: function tween(object,property,to,time){ original = object+property;
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(); .....
How does one trigger the execution of a method within an object or any other code/function with the setting of an object property?
More elaboration for those who want it:
Suppose we have anObjectType, with a property .description, whose value can be a string, and the value of .description actually describes the structure of anObjectType as a string. (The details are not important about how the structure is described, but if you want something concrete, think of 'anObjectType' as a DOM Node of type NODE_ELEMENT, and ..description as the property .innerHTML.)
When an instance of anObjectType is created, the value of description is created with the instance. Indeed, the value of description may not be set with the construction of anObjectType, but it might be added to the prototype of anObjectType.
But the property .description is not merely read-only. Fetching the value of .description returns the string which describes the structure of the object in a meaningful way.
When .description is set with a value of type string, the string is checked to see if it properly describes a legally formed structured for anObjectType, and the instance (and only that instance) of anObjectType is completely re-built: it might possibly be destructed and then re- constructed, or all properties (but not methods) which involve descendant objects are changed to conform to the described structure.
The question is, the setting of a string value of the property ..description of object anObjectType does not automatically trigger a method/methods (or an exception??) for doing something (such as restructing the object) as a result of the setting of an object property.
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".
if I'm using IE only I can get around just fine, but I haven't really had a lot of experience sniffing out other browsers and trying to create different code branches to create the same effect on a particular browser.
In this case I've got a series of layers that correspond to some links. When someone mouses over the link, the layer becomes visible. When someone mouses out, I want the layer to fade out. Code: