But now that I think about it... The image wouldn't appear if the element hadn't been loaded either... So my previous suggestions probably won't fix the problem... :/ I'll take another look this afternoon and see if I can find out whats going wrong...
On Fri, Nov 21, 2008 at 2:10 AM, Lee McMullen <[EMAIL PROTECTED]>wrote: > Thanks, I'll try your suggestions and let you know. > > Just out of curiosity, why would binding the field setup to the window load > have an effect? I thought that was the whole point of using $(function(){}), > so you didn't have to wait for the window to load? > > > On 21 Nov 2008, at 04:01, "Isaiah Fischer" <[EMAIL PROTECTED]> wrote: > > Then I have two possible solutions to what I think the problem may be... > > One, have the field_setup() function bound to the window load as such: > > $(window).bind(load,function(){field_setup()}); > > or define the width in the css of that field by its ID > > If that doesn't work then I'll need to find a different problem to solve :P > > On Thu, Nov 20, 2008 at 4:23 PM, Lee Mc < <[EMAIL PROTECTED]> > [EMAIL PROTECTED]> wrote: > >> >> The width is defined by a class the field has rather than it's ID. >> >> >> >> >> On Nov 20, 8:06 pm, "CodingCyb.org" <[EMAIL PROTECTED]> wrote: >> > And in the css the width is defined for "#test_field" or w/e its >> > named? Or is it defined by a class that it has? >> > >> > On Nov 20, 9:37 am, Lee Mc <[EMAIL PROTECTED]> wrote: >> > >> > > The width of the field gets set by a stylesheet which is pulled >> > > through. >> > >> > > On Nov 20, 3:22 pm, "CodingCyb.org" <[EMAIL PROTECTED]> wrote: >> > >> > > > Is the original width of the text field set in css? Or is it just >> the >> > > > width it gets when page loads? >> > >> > > > On Nov 20, 9:09 am, Lee Mc <[EMAIL PROTECTED]> wrote: >> > >> > > > > Yes that's exactly right. >> > >> > > > > Any ideas would be greatly appreciated! >> > >> > > > > On Nov 20, 1:18 pm, "CodingCyb.org" <[EMAIL PROTECTED]> >> wrote: >> > >> > > > > > I'm still trying to picture the site in my mind. So it has three >> tabs >> > > > > > that you can switch between, but the default can be different? >> And >> > > > > > when the default isn't the first one, the image appears in tab >> one, >> > > > > > but stays underneath the input box because the width isn't >> updated? >> > >> > > > > > On Nov 20, 12:11 am, Lee Mc <[EMAIL PROTECTED]> wrote: >> > >> > > > > > > The example HTML only has a single text input, it's this input >> I'm >> > > > > > > having issues with. Apologies, the example HTML gave the field >> a >> > > > > > > different ID than the JS contained. Im copying the code from >> an in >> > > > > > > process project so it's stripped down for readability. >> > >> > > > > > > Therefore the different ID in my HTML is just a typo. >> > >> > > > > > > Cheers, Lee. >> > >> > > > > > > On Nov 20, 4:14 am, "CodingCyb.org" <[EMAIL PROTECTED]> >> wrote: >> > >> > > > > > > > Sorry it took so long for a reply... >> > >> > > > > > > > Where in the html is "#test_field" ? That's what the >> field_img goes >> > > > > > > > after, but I'm not sure where that is... >> > >> > > > > > > > On Nov 19, 9:39 am, Lee Mc <[EMAIL PROTECTED]> wrote: >> > >> > > > > > > > > Hi, yes I think you've misunderstood my problem. >> > >> > > > > > > > > In a nutshell, there is an <input type="text"> on tab 1. >> On load of >> > > > > > > > > the form, I'm trying to make this input less wide and >> place an image >> > > > > > > > > next to it. When tab 1 is the default tab, it works fine. >> When any >> > > > > > > > > other tab is the default, it inserts the image but doesn't >> update the >> > > > > > > > > width of the field. >> > >> > > > > > > > > This is an example of my markup: >> > >> > > > > > > > > <div class="tab_container"> >> > >> > > > > > > > > <!--insert tabs--> >> > > > > > > > > <ul class="tabs"> >> > > > > > > > > <li><a href="my_form#tab_1" class="tab" >> title="content_1">Tab 1</a></ >> > > > > > > > > li> >> > > > > > > > > <li><a href="my_form#tab_2" class="tab" >> title="content_2">Tab 2</a></ >> > > > > > > > > li> >> > > > > > > > > <li><a href="my_form#tab_3" class="tab" >> title="content_3">Tab 3</a></ >> > > > > > > > > li> >> > > > > > > > > </ul> >> > >> > > > > > > > > <!--insert tab 1--> >> > > > > > > > > <div id="content_1" class="tab_content"> >> > > > > > > > > <a name="tab_1"></a> >> > > > > > > > > <label for="field_id">My Test Field:</label><input >> type="text" >> > > > > > > > > id="field_id" value=""> >> > > > > > > > > </div><!--close content_1--> >> > >> > > > > > > > > <!--insert tab 2--> >> > > > > > > > > <div id="content_2" class="tab_content"> >> > > > > > > > > <a name="tab_2"></a> >> > > > > > > > > <!--tab 2 content--> >> > > > > > > > > </div><!--close content 2--> >> > >> > > > > > > > > <!--insert tab 3--> >> > > > > > > > > <div id="content_3" class="tab_content"> >> > > > > > > > > <a name="tab_3"></a> >> > > > > > > > > <!--tab 3 content--> >> > > > > > > > > </div><!--close content 3--> >> > >> > > > > > > > > </div><!--close tab container--> >> > >> > > > > > > > > Any thoughts would be much appreciated. >> > >> > > > > > > > > Cheers, >> > > > > > > > > Lee >> > >> > > > > > > > > On Nov 18, 3:47 pm, CodingCyborg <[EMAIL PROTECTED]> >> wrote: >> > >> > > > > > > > > > That all seems like it would work fine. I went back and >> re-read your >> > > > > > > > > > original post. I found that I may have misunderstood the >> problem. >> > >> > > > > > > > > > In your original post is "#field_id" within the content >> of the first >> > > > > > > > > > tab, or is it the content warpper of the first tab? >> > >> > > > > > > > > > If it is the wrapper, then you are putting the image >> outside of what >> > > > > > > > > > is hidden, if not then changing that field width >> shouldn't affect any >> > > > > > > > > > other tabs. >> > >> > > > > > > > > > From what I now understand you don't want the image >> there unless you >> > > > > > > > > > are on the first tab? So placing it within the content >> of that tab may >> > > > > > > > > > be the solution? >> > >> > > > > > > > > > On Nov 18, 9:30 am, Lee Mc <[EMAIL PROTECTED]> >> wrote: >> > >> > > > > > > > > > > Here is the code which sets the tabs up: >> > >> > > > > > > > > > > /* >> > > > > > > > > > > * JS to handle the building of tabs within forms >> > > > > > > > > > > * Pre-requisites: >> > > > > > > > > > > * - jQuery >> > > > > > > > > > > * - "tab" links i.e. "a" tags to have a class of >> 'tab' >> > > > > > > > > > > * - the "title" attribute of the "a.tab" links and >> the "id" attribute >> > > > > > > > > > > of the div containing that tab's content to be called >> "content_n" >> > > > > > > > > > > where n is the number representing the tab >> > > > > > > > > > > */ >> > > > > > > > > > > var form_tabs = { >> > > > > > > > > > > build: function(){ >> > > > > > > > > > > // Define what happens when a "tab" is clicked >> > > > > > > > > > > $("a.tab").click(function(event){ >> > > > > > > > > > > event.preventDefault(); >> > > > > > > > > > > // switch all tabs off >> > > > > > > > > > > $(".active").removeClass("active"); >> > >> > > > > > > > > > > // switch this tab on >> > > > > > > > > > > $(this).addClass("active").blur(); >> > >> > > > > > > > > > > // hide all elements with the class >> 'content' up >> > > > > > > > > > > $(".tab_content").hide(); >> > >> > > > > > > > > > > // Now figure out what the 'title' >> attribute value is and >> > > > > > > > > > > find the element with that id. Then display that. >> > > > > > > > > > > var content_show = $(this).attr("title"); >> > > > > > > > > > > $("#" + content_show).show(); >> > > > > > > > > > > }); >> > > > > > > > > > > // Get the global settings object and figure >> out which tab >> > > > > > > > > > > should be displaying, show it and hide the rest >> > > > > > > > > > > var tab_display = ''; >> > > > > > > > > > > if (settings) { >> > > > > > > > > > > // We have found the settings object, get >> the >> > > > > > > > > > > 'tab_display' property >> > > > > > > > > > > tab_display = settings.tab_display; >> > > > > > > > > > > } >> > > > > > > > > > > else { >> > > > > > > > > > > tab_display = '1'; >> > > > > > > > > > > } >> > > > > > > > > > > // tab_display has been set so set the class >> for the active >> > > > > > > > > > > tab >> > > > > > > > > > > $('a.tab').each(function(){ >> > > > > > > > > > > // 'this' now represents the tab >> > > > > > > > > > > if ($(this).attr('title').substr(8) == >> tab_display) { >> > > > > > > > > > > // we have the correct tab so apply >> the 'active' class >> > > > > > > > > > > $(this).addClass("active"); >> > > > > > > > > > > } >> > > > > > > > > > > }) >> > > > > > > > > > > $('.tab_content').each(function(){ >> > > > > > > > > > > // 'this' now represents the div >> container. Test for the >> > > > > > > > > > > id and see if we should hide this div >> > > > > > > > > > > if (this.id.substr(8) != tab_display) { >> > > > > > > > > > > // we have a tab whose content we >> don't want to see so >> > > > > > > > > > > hide it >> > > > > > > > > > > $(this).hide(); >> > > > > > > > > > > } >> > > > > > > > > > > }) >> > > > > > > > > > > } >> > >> > > > > > > > > > > } >> > >> > > > > > > > > > > I'm pretty new to jQuery so apologies if there are >> some silly or >> > > > > > > > > > > obvious comments, just my way of remembering whats >> happening when I >> > > > > > > > > > > look back at it!! >> > >> > > > > > > > > > > Cheers, >> > > > > > > > > > > Lee >> > >> > > > > > > > > > > On Nov 18, 2:49 pm, CodingCyborg < >> [EMAIL PROTECTED]> wrote: >> > >> > > > > > > > > > > > I think the how the tabs are set up is whats >> affecting it. But I'm not >> > > > > > > > > > > > sure how they function, or are set up. That code >> would be most helpful >> > > > > > > > > > > > at this point in time. >> > >> > > > > > > > > > > > On Nov 18, 8:36 am, Lee Mc <[EMAIL PROTECTED]> >> wrote: >> > >> > > > > > > > > > > > > Hi, here is the JS. I haven't pasted the >> form_tabs.build() function >> > > > > > > > > > > > > but can do if you think that might help. >> > >> > > > > > > > > > > > > $(function(){ >> > > > > > > > > > > > > // Build the tabs on the form. "form_tabs" is >> contained in the "js/ >> > > > > > > > > > > > > tabs.js" lib >> > > > > > > > > > > > > form_tabs.build(); >> > > > > > > > > > > > > // Set up the field >> > > > > > > > > > > > > field_setup();}); >> > >> > > > > > > > > > > > > function field_setup(){ >> > > > > > > > > > > > > // Create image which does something when >> clicked >> > > > > > > > > > > > > var img = '<img >> src="images/icons/user.gif" id="field_img" >> > > > > > > > > > > > > alt="blah">'; >> > > > > > > > > > > > > // Append image to the requested_for field >> > > > > > > > > > > > > >> $('#test_field').after(img).width($('#test_field').width() - 23); >> > > > > > > > > > > > > // catch the image being clicked >> > > > > > > > > > > > > $('#field_img').click(function(){ >> > > > > > > > > > > > > // code for image click here >> > > > > > > > > > > > > }); >> > >> > > > > > > > > > > > > } >> > >> > > > > > > > > > > > > Cheers, >> > > > > > > > > > > > > Lee >> > >> > > > > > > > > > > > > On Nov 18, 1:17 pm, CodingCyborg < >> [EMAIL PROTECTED]> wrote: >> > >> > > > > > > > > > > > > > Can you >> > >> > ... >> > >> > read more ยป >> >> > > > ~--~----~ > This message is part of the topic "$('#id').width()" in the Google Group > "jQuery (English)" > for which you requested email updates. > To stop receiving email updates for this topic, please visit the topic > at <http://groups.google.com/group/jquery-en/t/44e5c86af2982bc7> > http://groups.google.com/group/jquery-en/t/44e5c86af2982bc7 > -~----------~----~----~----~------~----~------~--~--- > > > > > >