JQuery :: Deep Copy $.extend() An Object Containing Selectors
Aug 17, 2010
What happens if you do the following? - That is deep copy a jQuery selector.
[Code]...
I'm concerned whether the myObj.selector object will deep copy the whole of jQuery as part of the process. My initial tests did not show any obvious speed hit, but it is rather a basic test right now.
As I know,it's not well to extend Object.prototype derictly. In the Prototype(JS Framewoke),there is no extend Object.prototype. It only add some static method for Object class.I want to konw the reason.
How to extend the constructor for the date object of the javasccript so that whenever a call is made to the constructor, I want to perform a particular action? Basically how to define wrappers for default javascript methods or objects like Date() so that I can perform some action and then invoke the original method? So basically if I have something like var a = new Date(); I want it to (say) alert the value of the date everything Date() is called and then execute the default date constructor.
I have a complex JS object. It manipulates the page DOM. Inside it I have many repetitive selections spread across functions. I would like to cache the selectors to enhance performance. How do other people do this? I can cache on the function level but not the object. When I try to cache on the object level I seemingly end up with stale selectors that while defined don't actually work.
My gut is that I can only cache on the function level?
what I have read does not deal with caching inside a JS object.
I have a few String prototypes such as String.prototype.EscapeReg = function () { return this.replace(/[-[]{}()*+?.,\^$|#s]/g, "\$&"); }; // Escapes characters for use with a regular expressionI also have my own class/ library which is used like this var adg = new AndyG_ns.ADG_Utils(); adg.StartClock('AndyClock','dd mmm yy hh:nn'); // etc.What I would like to do is to only add the prototype to my library (not to the global namespace). The end result I'm looking for is to use code such as:
var adg = new AndyG_ns.ADG_Utils(); var myString = new adg.AString(); var parsed = myString.EscapeReg();
In addition, I want to be able to also use/create my special string sub-class within my library. I suppose I'm saying that I would like to extend or super-class the native String object.
I know that this isn't coping the object into a new variable, its just another reference to the SAME object unlike
var a = 20; var b= a;
Which creates a copy of the variable "a" and stores it in variable "b".
How can I copy my above object into a new variable rather than reference the same object ? What I want to do is create the object, do a load of property changes, then copy the object into a new variable and do a load more property changes.
as you can see the items hide/show on click using a simple jQuery toggle. My question is, is it possible to link to my website with one section already expanded from an external source. I hope this question makes sense. Iv tried and failed by linking to the div id using #link but cant get that to work.
I am using the datepicker plug in, and am trying to extend it to not allow sundays to be selected. Now the problem I have is I am no javascript savy... so not sure the correct way to format this.
Here is my code for the plug in: <script type="text/javascript"> $(function() { // Tabs $('#datepicker1').datepicker({ beforeShowDay: function(date) { return [(date.getDay() > 1), ""]; } minDate: 0, maxDate: "+12M +0D", dateFormat: 'dd-mm-yy' });}); </script>
The above is not working, It is not showing the calendar, so I know something is up somewhere here? The reason it has datepicker1 is on the page it is dynamic and can have multiple occurences of the calendar but with numbers after each.
When you need for a certain element (say a text input box) to remember some data, what is the best way to do this? Can you extend the input box object with jquery? Right now i've been storing it in the rel tag $('#testInput').attr('rel','extrainfo') it just seems like there should be a better way to do this.
Currently I'm trying to do the following: { config : { user : "name", mod : true }}
That is JSON nr 1, now I got the following { config : { mod : false }}
What I need as a result is: { config : { user : "name", mod : false }}
If I do a $.extend(json1, json2) then I will lose my user name. If I do a $.merge(json1, json2) I will keep my username, but my mod will not be overwritten.
One option that occurred to me is to loop through all nodes in the div and count the words in the nodeValue if it's a text node, or otherwise loop through the element's sub-nodes if it has them. You could do this recursively and therefore find all text nodes within the DIV and its sub-elements.The problem is this doesn't cover everything. Inputs and textareas have a value, not a nodeValue. You will want to ignore any "script" elements and perhaps others. Of course you can set up a list of exceptions and modify the algorithm a bit to allow for them.An attempt at the approach described so far is shown here: [URL]But what about select elements? Do you want the value or do you want the text inside the selected option? What if they're multi-select lists? etc.
I have a setup where I have a function, calling a function, calling a function. All functions do what they're supposed to do, but they don't return to the first function when all is done, so it doesn't display an alert that it's supposed to.
For those that don't want to look through tons of code and think they might know what I'm doing wrong, here's the "coles notes" version. code...
I'm trying to gather some information on any techniques or even plans to change the fundamental nature of the way the internet and http requests work. From both an advertising, and a usability perspective, the concept of a page load is becoming obsolete. Users expect instant results, and advertisers are becoming more concerned with time on site than they are with page views. You don't need a full page view to have an ad impression anyway. That said, there are plenty of techniques to make it so that your page can load new information without reloading the whole page. The problem is there doesn't seem to be any good way of making it so that AJAX calls can be linked to.
My site has a somewhat weak implementation of this: [URL]
Notice that it links you to the "APM" tab of that page, and if you click the other tabs they're all loaded via AJAX? You'll probably notice that initially it loaded the "Overview" tab, and after the page loaded, it then switched you to the APM tab. That's wonky behavior, and I don't like it, but there's not much that can be done about it as far as I know. The problem is, as far as I know, this deep linking technique becomes increasingly difficult to implement the more variations you have on a page's data.
For example, if you have pagination, then you need to make your deep linking code support all those variations as well. So my question is, is there a way to easily, FULLY AJAX a website, complete with the ability to deep link to any page state, without any wonky behavior (e.g. loading the "base page" first, and then after it's loaded, switching the data)? If not, has anyone heard of any plans to fundamentally rewrite the nature of HTML and HTTP requests so that web pages are no longer based on page loads, but state changes?
I've cranked up the numbers for sensitivity, interval, and timeout, and the site seems totally unresponsive to my changes. I've double-checked that hoverintent.js is being called, and it definitely is.
From any page, I want to be able to call a JS function that will do the equivelant of select all, and copy. This data will then be posted to a page that will log it.
This would be easy using copy/paste functionality but I don't want to screw-up users copy/paste buffer. Anyone have an example of how to retrieve all text with similar formatting of copying page to notepad without using copy/paste functionality?
This might be more easily explained just by showing you the code. Basically, this is a function within a large class dealing with moving table rows around, and works in Chrome but no where else. Chrome understands "event.clientY" in this context while other browsers throw "event is undefined". Y is a correctly set global indicating the clientY of where the original click occurred.
Code:
set_bgcolor = function (t, r) { var tr, i; var currentY = pointer.y = event.clientY; tr = tables[t].rows[r];
[Code]....
So, I'm just trying to get event.clientY to work for all browsers in this case, where an event handler might not easily be passed to the function.
Details:
I'm using third-party code to move rows of a table around. [URL]
It's a large piece of drag and drop code, but I'm trying to edit it so that at a point near the code's completion, it says whether the initial mouse click was above or below where the cursor has been dragged to. "Why" is a long story, but suffice it to say that there are functional differences when dragging the row up rather than down (up puts it above the hovered over row, while below puts in under that row), and I want to place a border line in there so that users know exactly where the row is going.
So you probably don't have to look at the whole code (which I can provide if you'd like), but my basic question is, how do I get the function to know where the current mouse pointer is this many levels deep in code. I could try to pass the event through all the layers, but I'm not good enough at javascript to make that work, and I'm not sure it would. Isn't the event the keypress (and not the current position?).
I've got a div, and it has an onMouseOver handler attached to it which makes a second div visible. The second div shares part of one side with the first, but not all.
The first div also has an onMouseOut handler which, you guessed it, makes the second div invisible.
However, if the user rolls out of the first div and into the second, I'd like to keep the second div visible. Any ideas how to accomplish this?