I would like to display the number 1 at first and then 2. but this code produces number 2 for both alerts. I was able to achieve what i wanted with "new" constructor when creating functions but this is not a good practice and after all i am passing these functions as an event handlers and it can't be done with "new" keyword because it is throwing error. I think there are some solutions with arrays e.g the x would be an array of numbers, but i don't like it. Am i missing something important?
Not sure if this is possible, but I have an external script that creates an object, and I want to overwrite some of its functionality, but keep the scope.
Here is a basic example:
Code: <script> Obj = function (userConfig) { this._init(userConfig);
[Code]....
I want it to log two Objects, but instead I get two window elements. Is this because I am declaring the functions in the global scope, and not from within the object?
Anyway I can keep the scope of the object, whilst still overwriting the function?
I am trying to convert some of my javascripts into a class and am running into difficulties which i think are related to variable scope.
Basically I have a constructor function for a calendarInput class that takes 4 parameters, the first is a reference name/number for this input. I also have some functions for importing my PHP classes into Javascript using AJAX (properties only. still trying to get methods working but that's another story!). The relevant function is called call_object_method(classname, methodname, createparams, methodparams, post, callbackfunction). This creates an instance of the specified PHP class using the parameters in createparams. It then calls the specified method using the parameters in methodparams. The result is passed back to the javascript function specified in the callbackfunction parameter (ie the value of xmlhttp.onreadystatechange is set to callbackfunction before xmlhttp.send() is called)
The function i am trying to fix is called show (x,y) which creates the html for the calendarInput and displays it at co-ordinates x, y.
this.showcallback = function() { alert(this); <!--//code to create html//--> }
}
I know i've cut out most of the innards of this. This is because I have already tested these functions and had the calendarInput working outside of a class, hence am pretty sure that this is ok (plus it runs to almost 1000 lines these days!!). My problem is that when I call the show method, the alert on the first line of the callback function returns the function showcallback instead of (as i was expecting) the instance of the calendarInput object. Whilst this kinda makes sense I can't figure out how to reference the Object instead. I have tried 'this.parent' but this returned undefined. I have tried changing the way i reference the callback function (ie the final parameter of call_object_method) but no joy.
I've recently started developing javascript using jQuery and so far I'm really enjoying it.Being a professional programmer (mainly C, C++, java and python) there is one thing that's been puzzling me regarding variable scope and unnamed function declarations. Let me exemplify:
------------------------ var sum = 0; $(xmlobj).find("item").each(function(){
I'm having trouble letting functions I defined in jquery read javascript global variables I defined elsewhere.. for example I have a function defined within my jquery
$(document).ready(function(){ function performTabSlide() { // do something with currentPosition;
I'm using jQuery's getJSON method to get the current date from a foreign server. I however, should this request fail (e.g. if the server is down), I want to have my page fall back to a sensible default.
What I'd like to do is this: var date = "sensible default" $.getJSON(url, function(data){ date = new Date(data.datetime); }); if request was successful date will contain new Date(data.datetime); if request was unsuccessful date still contains "sensible_default"
What I have is this: var timezone = "Europe/Berlin"; var date = "sensible_default"; $.getJSON("[URL]"+timezone+"&callback=?", function(data){ date = new Date(data.datetime); }); alert(date); But this produces an alert of "sensible_default", despite the fact that the getJSON request fired correctly.
I think the last thing people seem to learn about in JavaScript when they're not coming from other programming languages is variable scope. Some even get all the way into AJAX without having learned about scope, and this is a time when it's really needed. Although the scope of JavaScript variables is non-complex by nature, it's something we should all get a full understanding for before we move too far. Section 1: What is "scope"? Section 2: The "var" keyword Section 3: The "this" keyword Section 4: Closures or "Anonymous functions and self-invoking closures
I was trying to make some clever class based on a factory pattern. See this page: [URL] So i did this:
[Code]....
As you can see, I have an internal method "showDialog". In the jQuery part, where i create a dialog, I have two function for the drag and dragStop events. Why can I not create them in the same way as the showDialog function? Something like this
I am using Ben Alman's JQuery resize plugin in order to obtain the varying computed width of an element when the window is resized (the element in question is a page wrapper that exhibits the expand-to-fit behavior of a block box, and it's computed width is obviously influenced by the resizing of the window. Essentially, what I need to be able to do, is to reference a variable that is defined in a .resize() function ('width_page') in a seperate .each() function.
[Code]...
I now understand that variables can't cross boundaries like in the example above, which leaves me a little stuck. I also understand that this is specific to the context of the .resize() function, and that it can't be taken out of it without using an element selector. Is there some way I can call the .resize() function in my .each() function?
I pulled out an old javascript object I created a while back a few days ago and I've been developing in Firefox ever since. Then I decided to test how it worked in other browsers and.....it works in none of them! Not chrome, not IE(7/8), not opera, and not safari.
It's built like this:
Code: function myCalendar() { //constructor function } myDiv.prototype.newMethod = function() {
[Code].....
It's really as simple as that....what's on the go? Do any JS experts out there know anything about this?
I need to know how to add an event to a button. The specific issue is that I want to add an event which is a prototype function of a class. Consider the following as an example:
I've noticed that if you declare a variable in one function, then call another function, the variables cannot be accessed in that function. Is there any way to get the value of a variable declared in a different function?
I'm new here, and new to js. Here is my problem: I have written out a code to make an image switch from state 0 to 1 and back to 0 again (an eye blink). The code works fine, but I would like to write the functions with arguments so it could be applied to more images. I have tried for a few hours (and searched forums) and am getting no where. Here's my code.
Code: function home_blinkDown() { //alert('blink down'); var t = setTimeout("home_blinkSwap('home_js', 'images/main/home_blink.png')", 2000);
I cannot findout how I can write to global variables in a a JQUERY function. <script type="text/javascript"> function checkusername (username ) { $.post("[URL]", { action: 5, username: username }, function(xml) { result = $("apot", xml).text(); //<-- this variable is not global... why ?? message = $("message", xml).text(); //<-- this variable is not global... why ?? alert(message); //<--here variables are shown ok alert(result); }); alert(message); //<--here variable is NULL !! alert(result); //<--here variable is NULL !! } </sctipt>
I'm trying to trap a user entry that cannot be found in the database. When a code is entered, the page should give a "Code Not Found" message if it is an undefined value.
However, it didn't; and it always shows the "undefined" value to the page instead.
for some time I always found a workaround for this kind of problem. But somwhow, it feels wrong. So I'd like to know, if there's a common way to solve something like this[code]...
I'm defining the function and if the value of 'obj' hasn't until the function really gets called, this can work. But it just feels so wrong do have always global variables just to access them inside of a callback.[code]...