var obj = {};
with(obj) {
var x = 10;
}
print(x);
print(obj.x);
It prints 10 and undefined. Here, one could expect that obj.x get the
value 10. But it's not the case, because variable declarations are
placed at the start of function code (or global code), so the
previous code is equivalent with:
var obj;
var x;
obj = {};
with(obj) {
x = 10;
}
print(x);
print(obj.x);
You can clearly see now that x is placed in the outer context. But
consider the next:
var obj = {};
with(obj) {
eval("var x = 10;");
}
print(x);
print(obj.x);
I was expecting that obj.x would get the value 10 here. But no, it
gives the same output as the previous code. I tested it with
spidermonkey, kjs and ie jscript. Looking at the ECMA spec, I could
not find anything that describes that behaviour. Code:
Well, it turns out IE8 has yet another problem. My code has a global variable (to the object) inside an object declaration that cannot be accessed by a function (that is also global).
The code is like so: Code: function myobject(params){ //public this.initialize = function(){...} //private some variables... //problem variable var mouse = new Object() mouse.x = 0; mouse.y = 0;
//this function is in an interval function moveslides() { /* this is where I have the problem
It seems that the function doesn't recognize that mouse.x, or mouse for that matter, exists. Mouse is global to the object, so why can't this function access it? */if(mouse.x) { code... }}} The page is at [URL] and works on every browser, including finnicky opera, except for ie. The full code is availabe when you right click and view the source on the page.
I am trying to declare a variable inside a function and use it later on in my code... but it just already returns white space... i.e. not variable value. I am setting it within this function:
function show_video1(){ document.getElementById('video1').style.display="block"; var video1Name = "Education World News (Part 1)"; document.getElementById('video2').style.display="none"; document.getElementById('video3').style.display="none"; document.getElementById('video4').style.display="none"; [Code]...
and trying to call it later on with this: <script type="text/javascript">document.write(video1Name)</script> It might be worth noting that each one of my 11 videos will hace a different name.
I've been searching for about 3 days on this topic. I'm trying to get a template field inside of an ASP.Net detailsview control inside of an ajax updatepanel to work with the jquery datepicker. Very frustrating! I'm using VB with VS 2010. I can get the datepicker to work fine with a simple text box inside of an update panel but when I put it inside of a detailsview control it stops working.
In my code a JavaScript function received value from html hyperlink. Value passing successfully, inside product function document.write(a) printing value 5. But how can i print value of "a" inside product function by php. My code is here....
I think I've had JavaScript variable scope figured out, can you please see if I've got it correctly?
* Variables can be local or global * When a variable is declared outside any function, it is global regardless of whether it's declared with or without "var" * When it is declared inside a function, if declared with "var", it's local, if not, it's global * A local variable that is declared inside a function is local to the whole function, regardless of where it is declared, e.g.:
function blah() { for(var i ... ) { var j ... }}
i and j will both be visible within blah() after their declaration. * the notion of "function" in this context also applies for this kind of construct:
var myHandler = { onClickDo: function() {
in the sense that whatever one declares inside onClickDo with "var" will only be visible inside onClickDo. What else, am I missing anything?
I'm using the following to sequentially change the background color of some list items. It works, but is there a direct way of putting a variable inside the n-th child parentheses, instead of concatenating? Second question, more CSSey, though. The highlight goes all the way across the page since the CSS bounding box is 100% for the li items. The lines are various lengths so I can't just set the bounding box to, say, fifty percent. Is there a way to use jQuery to make the bounding box, or background color only go to the end of the text?
im not sure now to word it, or how to do it, im a php coder not a javascript -.-but here it is, basicly i have one ajax file and wish to use it for everypage,i tryed to do it so i can just call one function for all ajax uses, but forms seem to be thowing me off when i call it, i stat if its a form or a element,
function ajax(str, b, c) { a = b; type = c; if (type === 'form') {
[code].....
in this, the variable a is set as the id of the elemnt/form, it works fine for elemnts, but not for forms,i think this is because its thinking a is the id, not the variable,
I'm making a project which creates tabs with a class. I don't really know how to explain it better but this is how it works:
<a href="#" id="tbs_tabs">Create</a> <script type="text/javascript"> var tbs = new Tabs('tbs_tabs'); tbs.theme = 'classic' tbs.create_option('abc','#'); tbs.create_option('abz','#'); tbs.create_option('abf','#'); tbs.create(); </script>
It first creates the new class and tells it the id, then it creates as many options as you want and creates it.
My problem is with this line: for(i=0;i<this.option_values.length;i++) { li = document.createElement("LI"); li.appendChild(document.createTextNode(this.option_values[i])); addEvent(li,"click",function(){oThis.select_option(i); return false;};
ul.appendChild(li); }
What I was trying to do here is add an event to the LI element that refers to the current tab class but doesn't use the CURRENT i value but the value that was when the event was first created.
For example.. If my i value is currently 2 and I add the function, then I want that when I call the function, the value will still be 2 and not the current i value. What happens now is when I call the function the value is something like 5 or 6.
The Form id as returned from the Controller side is saved in the variable getformid correctly, But it is not reflected in the savefield ajax post..And it is saving as 0 only even it alerts as the returned Form id..
In addition i am giving here the Code inmy Controller for saveForm:
CDATA-blocks work great for coding large blocks of HTML, or CSS, into strings. But, I can't figure out how to use a variable-value within one.For example, consider this JavaScript code:
var FullName = "Friedrich Hayek"; var ProfileCode = (<><![CDATA[ <div id="BigHonkingChunkO_HTML">
[code]...
How do I get $FullName$ to render as "Friedrich Hayek" instead of "$FullName$"? Note that there is more than one variable and each variable can be used a few times in the CDATA block. Alternate code sample:
var UserColorPref = "red"; var UI_CSS = (<><![CDATA[ body {
I have a set or icons that which over time I replace with a different icon and and add a onclick event to them. This is my code
function updateStatusIcons(retText) { updatingStatuses = true; var updates = retText.split("|"); for (z=0; z<updates.length; z++) {
[Code]....
Everything works fine except for the onclick event. In the hover message of the icon, the correct project ID is displayed in the message, hoever in the function, the onclick funtion always loads the page with the last set project id. How can I pass the project id into the onclick function and make it stay fixed and not be the value of that it was last set to?
im trying to change a variable set outside of a function and calling the function with an onchange... i'm having problems getting the variable to change
How do I store an object reference inside a variable when I want the object reference to to reference the first "ul" html element nested inside the current object (as referenced by this keyword)?
I have the following code inside the <head> of my php file. What this code will do is change the style="display:none;" of a div element, depending on which option is selected within a combo box. Code:
Is there any way we can watch variable values inside javascript functions while running through the debugger. I am using javascript along with ASP.net on Visual studio 2010.
This is a follow-up to a post from long ago. I had thought that this would be very simple but damned if I can get it to work.
Basically, I want a value which is generated in a JS function to be included in a <form method="get"> output. For some reason which is beyond me, the value is not being updated and the form is returning only 'undefined'. Here is the code:
JS: <script type="text/javascript"> function addRow(tableID) { // CELL 1 var table = document.getElementById(tableID);
Everything works above. The first alert shows that this.status was set to 'error'. However, if I call myClass.getStatus(), I get undefined. How can I get the parseData function to set the variables in the parent function?
I have a list of most 17 recent entries from a db table and wanna use jquery/ajax to have a next button that loads the next 17 entries when you click it. It passes the 17 variable to the .load which works fine first time around (this is later used as mysql limit), but then I try to increase the start variable with 17 so that next time I click it would pass 34 to the .load (so it loads next 17 again) but this doesn't work, it simply loads same 17 again on 2nd, 3rd ect. click (so nothing changes). use global variables by setting it with var and using it without var inside the function.
<script> var start = 17; var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; $("#latestbattlesnext").click(function () {
In one of my functions I got the following lambda function. It works as intended, but I got a tiny problem. I'm trying to access the function-scooped variable "matched" and set it's value to "true". The problem is that it seems like the variable is existing as a local variable inside the lambda function, even if it's not declared inside the lambda function itself. So, the change "matched = true;" does not effect the variable that I declared.
Code:
//... code var matched = new Boolean(false); xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {