2013-08-30 42 views
0

该脚本旨在映射两个隔间之间的位置,以便大型办公楼中的人员可以找出他们需要去哪个人的位置。我几乎得到它...禁用Javascript中的切换开关

我有两个不同的下拉菜单,我正在与。

默认情况下,页面上的点显示。

每个点对应下拉列表中的名称。

当您在第一个下拉列表中选择名称时,其他点将消失,然后如果您在其他下拉列表中选择该名称,则第一个消失。

我想要发生的是 - 当从下拉列表中选择两个名称时,则同时显示两个点。

我可以得到一个或另一个,但不是两个。

这里的JS我不得不在两者之间切换...

$('#mapMe').change(function() { 

     var selectedMeChoice = $('#mapMe option:selected').val(); 
     if (selectedMeChoice == 'ALL'){ 
      $('a.dot').slideDown(1000); 
     }else{ 
      $('a.dot[mechoice = "'+selectedMeChoice+'"]').slideDown(1000); 
      $('a.dot[mechoice != "'+selectedMeChoice+'"]').slideUp(1000); 
     } 

    }); 


$('#mapThem').change(function() { 

     var selectedThemChoice = $('#mapThem option:selected').val(); 
     if (selectedThemChoice == 'ALL'){ 
      $('a.dot').slideDown(1000); 
     }else{ 
      $('a.dot[themchoice = "'+selectedThemChoice+'"]').slideDown(1000); 
      $('a.dot[themchoice != "'+selectedThemChoice+'"]').slideUp(1000); 
     } 

    }); 

我觉得它有什么做的效果基本show /功能了slideDown,但我不出来..

有一个jsfiddle here

回答

1

你不会以任何方式区分“他们”和“我”,所以你隐藏了应该显示的另一个。尝试这样的事情,只能隐藏正确的点:

$(".me").removeClass("me"); 
$('a.dot[mechoice = "'+selectedMeChoice+'"]').addClass("me").slideDown(1000); 
$("a.dot").not(".me, .them").slideUp(1000); 

http://jsfiddle.net/XvHJS/10/

这样,您将只隐藏以前的“我”,并不能掩盖一切,包括积极的“他们”。

+0

下面是我想要做的更好的想法。我想最初我需要添加更多的点来使效果更好。点击[这里](http://jsfiddle.net/jlnewnam/XvHJS/8/embedded/result/)。你会看到如何当你选择一个名称,其他点被删除...但我想要的是从一个菜单中选择一个名称,然后从另一个菜单中选择另一个名称,只有这两个显示,而不是整个页面。这是否更有意义?我很抱歉,如果我的第一个问题是神秘的。 – webfrogs

+0

我不确定你的意思。从你的第一个问题,“我想要发生的是 - 当从下拉列表中选择了两个名字,那么两个点都显示在同一时间,我可以得到一个或另一个,但不是两个。”...这是我的答案地址。我不确定你的意思是“不是整个页面”。 –

+0

下面是我正在使用的实际网站[here](http://webfro.gs/south/kb2/ohe-map-i.html)...当你到达那里时,你会看到所有点都排成一列在地图上。 (忽略右边的点 - 因为它们还没有分配给人)。当你从“我在哪里?”中选择一个名字时......那么除了那个点之外,所有的点都消失了。我想要发生的是当你从“你在哪里?”中选择一个名字时......然后我希望这两个点都显示出来,但不是默认显示的每一个点。 – webfrogs

0
$('a.dot[mechoice != "'+selectedMeChoice+'"]').slideUp(1000); 

同样是去除那些没有memchoice可言,包括那些themchoice。 我建议使用不同的类dotmedotthem

+0

你能举个例子吗?我不太清楚你的建议。 – webfrogs