My problem is that it takes ages to perform the element.focus() function. This is not a function I have written myself but is part of the Javascript language itself. There are probably a lot of reasons why this might be slow but I cannot find the right one. Let me describe my problem. We have a product which was created around 2004 and has been developed on since. The HTML and Javascript used for the product was based on a prototype which we then converted into a server based solution (we use Servlets/JSP).
Due to the nature of the prototype (and also the graphical layout) the major page consists of one huge HTML page which a lot of hidden DIV tags. These DIV tags are then toggled visible/invisible to make it look like we have a kind of tab functionality. We also do not load all tabs when we load the mail page, instead each tab is loaded into a hidden iframe and then with Javascript we grab the resulting HTML content and paste it into the main page, making that one tab visible while hiding all other tabs.
In one of these tabs we also do some more magic. The layout is as follows; we have sets of three columns each and then a lot of rows. Each set of three columns contains one text field per column. The last text field contains a percentage value and when edited, we check if the value is lower then before the edit and if it is, then we split the column, creating another set of three columns.
When we load the page the first time, there exists only one set of columns with the last column having the value 100. There can however easily be 100 rows as well. For the larger pages we can have (at load time) three columns which makes it 900 text fields. I do not know if this is much or not.So, with the above info, to my problem. First off, when I try to move the marker and click on a given field (so that the marker starts blinking on the selected field) it takes maybe 2-3 second (although not always, seems to be more the first time). If I then tab to the next field it goes very fast (like one would expect).When I try to edit a value (by simply adding or removing values) it again takes a very long time (the first time).
When I then try to tab, it takes ages (this happens always, not only the first time).My Javascript then. I have two events, onchange and onkeydown. onkeydown checks if a variable is set to true or not. If it is set to true, the method does nothing. If set to false it does a bunch of tests and sets the variable to true. onkeydown is what I think causes my first lag but the code is not really that advanced (no loops or anything). onchange does the same checks plus all the magic (with the split etc). One of the last things it does is try to set focus on the next text field and this goes extremely slow all the time.
We use IE8. We (sadly) have a lot of IE specific stuff so the site doesn't even work in Firefox. I have used IE8 Developer Tools and used the Profiler which basically gives a list of Javascript calls and their execution times. My own functions take basically zero time, but there are A LOT of calls to functions that are not named, or anonymous, according to the Profiler.
How do I find what the anonymous function calls are?Why is it the focus() function that takes time, can it (or is it) still some of our own Javascript that makes that function go slow, even though it is part of the Javascript language?Can it be the amount of elements on the page (900 text fields)? Is that much?Can it be IE8? Are there known issues with this?
I'm having a hard time getting my head round it again. I know it could be more efficient in jQuery, but I'd be happy just to get it working, with an extra variable, in straight js.The function takes an array and progressively hides each element at constant interval, in this case 50ms:
function hide_50(arrayA,visibility,current) { if ( current == null ) current = 0; var arrayB=(typeof arrayA == 'string')? arrayA.split(',') : arrayA;
I am new to this discussion but hope you would post reply for my query and encourage me to keep in touch with this discussion. Well here is my problem. I have made an edit in place form in which we can add and remove the elements. I have used jquery.jeditable.mini.js and jquery.duplicate-remove.js plugins for edit in place and add and remove action. I have live() function to access the dynamically ganerated elements like this. $(".addressDiv span").live("mouseover", function(){ clickable function here...
as you can tell by the following statements, i'm new to jQueryI'm trying to do the following (in plain english) without too much success.. ) when document ready.. 2) find the element with id 'next'.3) pull / take all 'li' elements, and perform so and so, all whilst excluding 'last' element.
$(document).ready(function() { $('#next').click(function() { $('li').each(function() { //for each li ..
We are using JQuery for one of our software projects, and it's a very nice library. It's making things far easier. We are also using the Validation plugin, which is working wonders for form validation.However there's one wrinkle that we have not been able to figure out.Is there any way to run a function before the validation takes place?We have help text displayed in some of our text inputs and text areas,which are cleared onFocus (and restored onBlur if the user has not entered anything). We would like to clear those help text before validation is run, so that we don't get any false validations based on the help text, rather than the actual value of the field, which is blank.
I'm sure this is much simpler than I have been making it seem in my head so I'm giving up and asking Basically I have a html document being dynamically created by php. In the markup I create some divs (the number of which changes between pages) all of which belong to the same class (class="div") and have id's of the same format (id="div_90001" or "div_88926773"). What I want to do is perform a function on eachelementin the class and extract the number in the id and then perform a function with the number (AJAX) and then return the results to the div (probably some extra markup)
I can handle all the AJAX parts, the extracting of the id number etc... I just can't make a function that will work on all elements in a class. I fear I am not making much sense, I'll try again cos I don't think I'd understand what's above. I have some divs that belong to a class, I want to perform the same function on each of the elements in the class. How is this done?
The problem is that throughout my php project it calls different classes and definitions based on what modules are loaded.Is it possible to get it to load a function that is predefined rather than executing a page that will require me to once again declare all my variables and classes so I can perform just a simple db search.
needs an action, like a click or a mouseover or something. For each file that arrives, and therefore adds another instance of ui-icon-check, I'd like to fire an event. A weekend of googling has really only turned up Live Query from 2007, which works perfectly with
So am I totally mis-understanding the point of live, or just mis-using it?
I'm doing it this way rather than mess with the uploader code as he's updating the code all the time, and the more I can stay away from code code the better I think.
I have created a form with malsup's Form Plugin wherein it submits on change of the inputs. I have set up my jQuery script to index drop down menus and visible inputs, and uses that index to determine whether keydown of tab should move focus to the next element or the first element, and likewise with shift+tab keydown. However, instead of moving focus to the first element from the last element on tab keydown like I would like it to, it moves focus to the second element. How can I change it to cycle focus to the actual first and last elements? Here is a live link to my form: [URL]. Here is my script:
$(document).ready(function() { var options = { target: '#c_main', success: setFocus
I am trying to understand somecode. I don't think I am understanding everything correctly. Can someone confirm or add to my understanding?
Here is the code, below is my explanation:
- CODE 1 - is saying if the the class subnav_dd is called on an anchor tag on a li, then make the function in the if statement "live". (Live in a sense binds the function to the condition, but unlike bind it allows the condition to be used more then once. ) So if the class subnav_dd is the parent, and has a class of .dis then prevent anything below it from firing. CSS - If code 1 is true, then I will only get the first li to fire, the remaining ones will not.
- CODE 2 - This one is a little tricky. Function ToggleOptions takes 3 variables (target, array, state). The condition is if the div subnav + target have siblings, then check to see how many siblings are there. Put the amount of siblings into an array, then check the state of each sibling. I don't completely the rest of it.
I think if the div subnav is called and something is found in the array then the class dis is either added or removed. Then what? I don't understand why I still need the else that adds a class to #subnav_ +.target
I am working on a firefox extension. The job is to sit in the status bar and as I type into any form on any webpage, listen for keyboard events, then modify the key pressed by mapping it to some foreign unicode character and then sending it to the form in focus.
As I see it, there are two ways I can achieve it.
1) Capture the event, modify it and then send it and not be concerned with the form in focus.
2) Capture the event, prevent default action., find a unicode mapping for the key pressed, find the form in focus and based on the type of form, call a method to explicitly insert the mapped character at the cursor position.
Right now I am not able to find a way to do either. Once I get the focused element, I can do something to it. But I am not yet able to get that. I even tried document.activeElement, but it doesnt seem to work in firefox.
When using lists (UL, OL), if you click on the bullet of a list item, that item becomes selected. Is there a way to prevent this or divert the focus elsewhere. Code:
I want to get the id of an element to set focus to a particular field in javascript using classname or tagname... Is it possible to do that... I dont want to use document.getElementById to get the id...Or is there any way to set the focus of an element using classname or tagname.... (wihtout using id)
I have an input box with an id. I also have a jquery hotkey plugin which fires when I press F8 in this case. $(document).bind('keydown', 'f8', function (){ //do stuff here return false;}); The hotkey works just fine. (ive tested with alert boxes). What I am trying to do is find the cursor location (and then the elements id) when the f8 key is pressed. or... I want to find which input has focus on keydown.
Is it possible to extend jquery to include a function that will select elements with focus. In the same way :input selects all inputs :selected selects all selected etc but instead :focus or focused: which would select the focused element. I have a table which includes an input field on each row (like a simple datagrid). Id like to be able to hit an access key and delete the row (input textbox) which has focus ie the row which the cursor has been placed in.
I found this but it selects the first input textbox only for some reason?... and not the one with focus. $.extend($.expr[':'], { focused: function(elem) { return elem.hasFocus; } }); var id = $('input :focused').val(); console.log(id);
Below is the code which is used to validate the entries on a form(some field are not be left blank). The user gets the msg when he hits the "Check"button. The problem is after the user gets the msg, I am not able to set the focus in the field which is the first element of an error array which stores the info about the fields with errors on this form.code...
I have this page below which I run locally that is created dynamically: [URL]
I need a piece of javascript to focus on the captcha as shown in the image inside the green box. At this minute I have this which doesn't work all that great for some reason but it gets it to the general area...
As I said this does the job to some extent however it does not leave the focus in a perfect position so that the captcha is readable and the text box visible to type in, as illustrated in the red box in the above image.
I have an input element on a form. When I open a popup form and then close it, I try to put the focus back on my input element by using the focus() method. However, that fails and it doesn't get focus.When I press tab to get out of this input element, it takes several tries for it to get the tab event (since it wasn't focused, but how come it suddenly gets focus to respond later?)
Can I safely assume that, if an element is clicked, then it obtains the focus? Alternatively, I can set the focus with something like this: $('#my-button').bind('click', function() { $(this).trigger('focus'); });
I want to handle focus and blur events on any DIV element but don't know how? I tried this one: $('.myDIV').bind('focus',function(event){ // something }); But it doesn't work!