2013-08-30 3 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); 
     } 

    }); 

Я думаю, что это что-то делать с функцией slideUp/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

Вот фактический сайт, с которым я работаю [здесь] (http://webfro.gs/south/kb2/ohe-map-i.html) ... Когда вы доберетесь туда, вы увидите, что точки выстроены над картой. (игнорируйте точки справа - поскольку они еще не назначены для людей). Когда вы выбираете имя из «Где я?» ... тогда все точки исчезают, кроме этой точки. Я хочу, чтобы это произошло, когда вы выбираете имя из «Где вы?» ... тогда я хочу, чтобы обе точки отображались, но не каждая точка, которая отображается по умолчанию. – webfrogs

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

Является также удаление тех, которые не имеют memchoice вообще, в том числе с themchoice. Я бы предложил использовать разные классы dotme и dotthem.

+0

Можете ли вы привести мне пример? Я не очень понимаю, что вы предлагаете. – webfrogs

Смежные вопросы