Google Groups Home
Help | Sign in
Message from discussion Multiple sidebars?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Martin  
View profile
 More options Oct 6 2008, 1:55 am
From: Martin <warwo...@gmail.com>
Date: Sun, 5 Oct 2008 22:55:01 -0700 (PDT)
Local: Mon, Oct 6 2008 1:55 am
Subject: Re: Multiple sidebars?
Hi Daniel.

I think the main problem with my previously posted code was that the
javascript object has some built in methods or properties that were
being found by the for-in loop and being added to the HTML - that'd
explain the 'undefined' entries.

Here's a more refined approach.
Works much as the previous code but this time we create properties of
the categoryHTML object with a prefix of 'cat_'.
Then as we iterate through the properties of categoryHTML we check to
see if the property name beings 'cat_'.
If so we remove 'cat_' from the property name and assign that category
HTML to a container with an id that is the same as the category name.

Again the code is untested - i tried getting your page to load on my
PC but failed so couldn't test the new makeSidebar() function.

function makeSidebar() {
var categoryHTML={};    //      missing semi-colon added here
for (var i=0; i<gmarkers.length; i++) {
if (!gmarkers[i].isHidden()) {
categoryHTML['cat_'+gmarkers[i].mycategory] += '<a
href="javascript:myclick(' + i + ')">' + gmarkers[i].myname + '</
a><br>';

}
}

for(i in categoryHTML){
// check that i is a property (mycategory) that we've created and not
a built in property or method of the javascript Object
if(i.substr(0, 4)==='cat_'){
//      remove 'cat_' from the category property name
i=i.substr(4, i.length-4);
//      assign the category html to sidebar container with id that is same
as category
document.getElementById(i).innerHtml=categoryHTML[i];

}
}
}

And then within your HTML create the containers to hold the sidebar
for each category:

<div class="side-bar" id="theatre"></div>
<div class="side-bar" id="library"></div>
<div class="side-bar" id="interest"></div>
<div class="side-bar" id="parking"></div>

Don't forget - you need to create a sidebar container for each and
every category that you use.
Otherwise the line:

document.getElementById(i).innerHtml=categoryHTML[i];

will likely cause an error 'i is undefined'.

Martin.

On 6 Oct, 02:38, daniel <dajohnso...@gmail.com> wrote:

> Martin, I added the suggested code.  But the only difference i am
> noticing is the "undefined" before the first entry from the array.

> I would think that I would need to have several "sidebar" class
> instances. Just to clarify what I am thinking:
> Checkbox---
>    <div class="side_bar"></div>
> Checkbox--
>  <...."side_bar"...>

> Is this reasonable?

> On Oct 5, 6:20 pm, Martin <warwo...@gmail.com> wrote:

> > Try something like this (it's untested btw!):

> > function makeSidebar() {
> > var html = '', categoryHtml={}; // create an object to use as an
> > associative array of strings - an element for each marker category
> > for (var i=0; i<gmarkers.length; i++) {
> > if (!gmarkers[i].isHidden()) {
> > categoryHtml[gmarkers[i].mycategory]+='<a href="javascript:myclick(' +
> > i + ')">' + gmarkers[i].myname + '</a><br>';}
> > }

> > for (i in categoryHtml){
> > // here you could add title html for each category of links
> > html+=categoryHtml[i];}

> > document.getElementById("side_bar").innerHTML = html;

> > }

> > Martin.

> > On 5 Oct, 07:30, daniel <dajohnso...@gmail.com> wrote:

> > > I have a request from my boss to break up my current 1 sidebar into
> > > many.

> > > my map is very similar tohttp://www.osu.edu/map/google.php(asfaras
> > > the check boxes are concerned).  What he wants for whatever reason is
> > > to have the sidebar text show under the checkbox based on the checkbox
> > > being checked...

> > > I saw this:http://wolfpil.googlepages.com/toggle-cats.html

> > > and it seems close, but I my knowledge of javascript isn't developed
> > > enough to know what to tell the guy.

> > > Any help would be much appreciated.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google