0

该脚本旨在映射两个隔间之间的位置,以便大型办公楼中的人们可以确定他们需要去哪里才能找到另一个人。我已经差不多了...

我正在使用两个不同的下拉菜单。

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

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

当您选择第一个下拉列表下的名称时,另一个点会消失,然后如果您选择另一个下拉列表下的名称,第一个会消失。

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

我可以得到一个或另一个,但不能两者兼得。

这是我必须在两者之间切换的 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);
        }

    });

我认为它与 slideUp/slideDown 功能有关,但我无法弄清楚......

这里有一个jsfiddle 。

4

2 回答 2

1

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

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

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

这样,您将只隐藏以前的“我”,而不是隐藏所有内容,包括活跃的“他们”。

于 2013-08-30T21:48:45.483 回答
0
$('a.dot[mechoice != "'+selectedMeChoice+'"]').slideUp(1000);

也正在删除那些根本没有memchoice的,包括那些有themchoice. 我会建议使用不同的类dotmedotthem而不是。

于 2013-08-30T22:27:56.223 回答