Print

Print


Dan,

Thank you so much for your help and your code rewrite! I have been struggling with javascript for months in order to try to do this task, and given the prevalence of collapsible menus, I suspected that I was making things rather harder than they needed to be. I had heard about jQuery and other libraries, but it had never occurred to me to look at them for a way to do this. 

As you might have been able to tell by the link at the end of the code, I plan to use this code within our LibGuides home page in order to list the subject categories and individual guides within those categories. This is roughly what I would like it to resemble (I need to make a few changes unrelated to the code you provided):

http://libguides.gvsu.edu/content.php?pid=63144 

Our current LibGuides home page is simply an A-Z list of guides, but a few librarians from other institutions have asked me how I did that. I imagine that others may ask me how I did this, as well. Would it be acceptable to you if I posted this code on my blog (http://llyfrgellydd.info)? I only have about 60 subscribers, so it is not a huge audience, but I think that others might find your code very useful. It goes without saying that I would attribute authorship to you (and add a line to the code attributing authorship). 

Again, thank you for your help with this - it is a relief to have an elegant, cross-platform compatible solution after all this time! 

-Laura


>>> On 11/5/2009 at 9:23 AM, <[log in to unmask]> wrote:
> Laura,
> 
> I don't have a solution for the problem at hand but I would like to suggest 
> an alternate course of development.
> 
> When JavaScript is used to manipulate the DOM tree or add behaviours to a 
> webpage it is almost always better to use a cross-browser library then to code 
> it by hand.
> The problems you are encountering between IE and Firefox are only amplified 
> when a broader selection of browser and browser versions are taken into 
> consideration.
> Relying on a third party to do browser compatiblity and performance 
> optomiztions frees up your time as a developer to focus on implementing the 
> desired behaviour.
> There are many options out there -- Prototype, Dojo, MooTools, etc. -- but 
> jQuery is my library of choice.
> 
> I took the liberty of rewriting the webpage in question to create the 
> behaviour you desired with a few lines of jQuery.
> http://gist.github.com/227059 
> I commented the code thoroughly so you or anyone else new to jQuery should 
> be able to follow what's going on and why.
> 
> For further reading on the nature and use of jQuery see:
> http://docs.jquery.com/ 
> http://api.jquery.com/ 
> 
> best of luck,
> -dan
> ----------
> Dan Brubaker Horst
> Project / Application Developer - Hesburgh Library of Notre Dame
> ________________________________________
> From: Code for Libraries [[log in to unmask]] On Behalf Of Laura 
> Harris [[log in to unmask]] 
> Sent: Tuesday, November 03, 2009 1:37 PM
> To: [log in to unmask] 
> Subject: [CODE4LIB] Javascript question - works in FF, but not in IE
> 
> Hello, new subscriber here...I'm trying to fix some javascript. It works as 
> expected in Firefox, but not in Internet Explorer. FWIW, am using FF 3.0.14 
> and IE 7.0.6.
> 
> The code is up on pastebin here: http://pastebin.com/m20949cd1 
> 
> I'm aware that setAttribute & getAttribute are buggy in Internet Explorer, so 
> (in an alternate version of the code) I replaced the toggle bit in function 
> createToggleFunction with the following:
> 
> 
> if (toggleElement.className == 'collapsibleClosed') {
>                 toggleElement.className = 'collapsibleOpen';
>                 toggleElement.src = OPEN_IMAGE;
>         } else {
>                 toggleElement.className = 'collapsibleClosed';
>                                 toggleElement.src = CLOSED_IMAGE;
>         }
> 
> 
> However, I must assume I did something wrong in the code above, because it 
> doesn't work in Firefox.
> 
> Any thoughts? Let me know if I need to provide more information.
> 
> Thanks,
> 
> Laura Harris
> Web Services Librarian
> Grand Valley State University
> Allendale, MI 49401