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'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 can't use the value returned by $.post() method out of the scope of success function.
For instance in below example myvar alerted as empty even though var is alerted with a value. Besides, hide does not work in the scope of success function.
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?
You can use JQuery's data method (e.g. $('#MyID').data('MyVar', 'MyValue');) to easily store/retrieve information.
However, I was wondering if it is possible for my PHP generated page to add HTML tags that initialize the JQuery's data method variables. Regularly, I want server side variables to be accessible client side. It would be very helpful if I could initialize data method variables during PHP page generation.
If this is not possible, are there any suggestions on how to efficiently communicate server side variables to client side?
I'm showing a form in a Simplemodal dialog in combination with ajaxForm() to redirect the resulting page to another DOM element. The success function of ajaxForm() closes the modal dialog.The resulting page in the other DOM element has no access to the jquery function $(). When I load a page using ajax into the DOM element there is no issue access the jquery function, this only happens when I redirect the resulting page from the ajaxForm() function.
If you run it, the alert messageis "pic2", so jquery sees the entire document, but is there a way to easily restrict it to the sub-tree under the current node (in this case the sub-tree under the span node, since that's what was clicked)? Yes, I can do something like alert($("#div1 img:eq(1)").attr("alt")); //undefined as expected
But I am looking for a solution that's more dynamic, so I don't need to hard code #div1.
New to javascript/jquery and have a question regarding scope. I want to bind an event within my class so it calls one of the class methods. The problem I run into is that the event handler is a anonymous function that runs outside the scope of the class, therefore it doesn't see the class methods or properties.
Is there a proper way to deal with this: Sample code: function myObject(tag) { // properties this.myvar = 'test'; this.tag = tag; // methods function sendRequest() { alert(this.myvar); } // initialization $(this.tag).click( function() { this.sendRequest(); });}
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(){
how to manage the script scope on a full ajax application Let me explain a scenario
- Pages are loaded dynamically in a div, - pages are php files - pages contains scripts tags (static and generated via php) depending on context
Load Scenario :
1. master page load pages via $.load jquery function 2. page are inserted and the script is executed (mostly input events or live events)
when i select another page (just imagine a combo with all pages listed), the Load Scenario is executed again... the 2 js code line that matter in the master page
I'm a little puzzled over the possibility of accessing an array. I've declared the previd id - in the proxy.invoke call which works just fine (we have already implemented an .each loop which also works. My problem is this - after accessing the proxy.invoke function, the previd is populated correctly with push but after the call, we cannot seem to access the previd array to make a join to a string. Here's the basics of the code.
var previd = []; proxy.invoke("validdateIDCard", p_caregiverid, function(validaterID) { var valcard = validateID; previd.push(valcard); }, onPageError); var finalvalue = previd.join("|"); <-- this is where the problem lies - cannot seem to read the variable...
I have two methods and I would like to call somename1 method from within somename2 method. I have tried several ways to do so however I keep getting "TypeError" or "RefernceError" I have tried several ways to reference but I am still unable. What am I doing wrong. I would think this would be easy to do.
I've been programming in jQuery for some time now, and for the first time, I came across an issue where I am writing out the location of a TD with an ID="step" to get the innerHTML with html(). I receive a null value, but when I use td:first within the chain of elements, it works.Has anyone experienced this issue or have any idea why this is not working? I've tried other TDs with diffirent IDs within the same row, and the same null result happens.Is there a possible limitation to the numbe of IDs used within the chaining of the $() call?
I'm trying to create an endless animation similar to a screen saver, here an image floats around the screen, fading in and out. I would like to stay out of the global namespace, so I'd like to use the callback to animate() rather than getTimeout(), which seems to operate only on functions in the global namespace. Please correct me if I'm wrong about that. But I'm having trouble maintaining the scope I want for the callback I want "this" to refer to my Animation object, not the HTML element. I understand many folks have solved this problem for events by using bind() or live(), but I am wondering how to do this for animate().
Trying to upgrade from JQuery 1.4.3 to 1.6.1. My getJSON queries no longer populate my SELECTs. The below code works perfectly in 1.4.3 but unsure what changes I need to make for 1.6.1.
function populateCause() { $.getJSON(urlQueries, {sql:'list_causes'}, function(data) { var select = $('#opencause'); var options = select.attr('options');
[Code]....
The ONLY change I made is sourcing JQuery 1.6.1 instead of 1.4.3. Evidently I need to change the method of parsing the JSON data also.
I am using the getJSON command and using firebug for debugging, if I go to this server i setup with this url: [URL] It returns json data warped with getdata({data}). I have validated the json part using jsonlint, so from firebug's net tab I get a param (callback getdata), header and response, etc. as expected. But if I use jquery's getjson, I get param, and header but the response is empty and function callback doesn't trigger (no alert). (I know that getjson uses OPTIONS instead of GETS and I can see that the request is made on the server and the json should be sent as normal). Here is my code for this section:
<script type="application/javascript"> function getdata(data){ alert(data.name);
The problem I'm facing is as follows. I'm using a JSON call to checksome data before doing a JS redirect to a different page. The redirectworks but it's impossible to get back to the initial page using thebrowser's back button. The initial location is not being stored in thebrowser's history.This is the script simplified. If placed on[URL]browser's back button.
After upgrading to jQuery 1.4.1 from jQuery 1.3.2, my getJSON requests fail.The error given to the ajax error handler, is "Invalid JSON: ..." where "..." is the text of the response.Firebug parses the JSON fine, and can display the JSON data as such in its console, and jQuery didn't have an issue with the same data with version 1.3.2.
The NS_ERROR_DOM_BAD_URI seems to be about cross domain issues but I'm working locally on the actual server so should I be able to access the data? Also why is there an XML parse error when I can see the exact data I want in httpfox's "Content" tab?
I have setup a little example here: [URL] It is JSONP because of cross site policy. The returned JSON is valid, you can check the response in firebug. The callback function is not fired.
Tested with jquery 1.3.2, 1.4.2 and 1.4.4. Same result.