#3260 closed bug (fixed)
Weird IE7 behavior when focussing on a text input inside a div with padding
Reported by: | asprouse | Owned by: | |
---|---|---|---|
Priority: | low | Milestone: | 1.next |
Component: | effects | Version: | 1.2.6 |
Keywords: | IE7, slide | Cc: | flesler, asprouse |
Blocked by: | Blocking: |
Description
Summary
Here is a very simple example which will produce this behavior:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Test</title> <script type="text/javascript" src="jquery-1.2.6.js"></script> <style type="text/css"> #box { padding: 10px; } </style> <script type="text/javascript"> function show () { $("#box").slideDown("slow",function(){ $("#target").focus(); }); } </script> </head> <body> <input type="button" value="Click Here" onClick="show()" /> <div id="box" style="display:none"> <input type="text" id="target" /> </div> </body> </html
What we want to happen is to use the slideDown effect to show the "box" div and then focus on the "target" input. This works fine in firefox, however IE7 starts to do the slide down effect and once the callback is performed, "target disappears and the cursor appears to the left of the button. This does not happen if the padding is removed. Another way in which this works properly is if there is something to delay the focus() function call. For example:
function show () { $("#box").slideDown("slow",function(){ alert("BOO"); $("#target").focus(); }); }
or
function show () { $("#box").slideDown("slow",function(){ setTimeout(function(){$("#target").focus();},1); }); }
It seems as if there is some issue with the callback be fired while IE is still calculating the padding, but that is just a guess.
Steps to Repeat
- Copy the html code from above into an .html file
- Download the latest stable jQuery (at this time 1.2.6)
- Load the .html file created in step 1 into IE7
- Click the "Click Here" button
Attachments (3)
Change History (9)
Changed 15 years ago by
Attachment: | ie7error.jpg added |
---|
comment:1 Changed 15 years ago by
Changed 15 years ago by
comment:2 Changed 15 years ago by
Cc: | flesler asprouse added |
---|---|
Component: | core → fx |
comment:3 Changed 13 years ago by
Attaching a test case with jQuery 1.4.2, which seems to work in IE8. Needs to be tested with IE7.
Changed 13 years ago by
Attachment: | test-3260.html added |
---|
comment:4 Changed 12 years ago by
Keywords: | IE7 slide added |
---|---|
Milestone: | 1.3 → 1.5 |
Priority: | major → low |
Status: | new → open |
Let's test Dave's patch and see if we think it's something we can get in soon. Seems valid as an IE7 compatibility issue.
comment:5 Changed 12 years ago by
Milestone: | → 1.next |
---|---|
Resolution: | → fixed |
Status: | open → closed |
I believe this has been fixed http://jsfiddle.net/timmywil/awxA9/show. Feel free to reopen and provide an updated test case if necessary.
Here is a screenshot of the error in IE7: