2014-08-08 5 views
0

Я новичок в jQuery и немного помогу с чем-то!Показать/скрыть элементы jQuery

Вот некоторые из моего кода ниже:


HTML

<a id="showHideMenu">Discover...</a> 
<a id="showHideContact">Contact</a> 

JQuery

$(document).ready(function(){ 
    $("#showHideMenu").click(function(){ 
     $("#subMenuHere").toggle(); 
    }); 
}); 

$(document).ready(function(){ 
    $("#showHideContact").click(function(){ 
     $("#contactFormHere").toggle(); 
    }); 
}); 

На данный момент, если вы выберете «Discover ...», появится меню, и если вы выберете «Контакт», появится контактная форма. Однако я бы хотел, чтобы он работал так, если меню отображается, и вы нажимаете «Контакт», меню скрывается, а затем отображается контакт.

Дайте мне знать, если вам нужна дополнительная информация!

Благодаря

FIDDLE

+0

, что если контакт показывает и снова нажмите контакт? –

+0

Вам нужно только включить '$ (document) .ready (function() {' once - вы можете обернуть весь свой код внутри него. В качестве альтернативы, если вы поместите свой JS в конец вашей страницы (непосредственно перед тегом ''), вы не должны включать его вообще. –

ответ

0

Не требуется мультипликатор document.ready, использовать только один в одном HTML-страницы.

чтобы показать/скрыть меню и использовать нижеследующий запрос.

$(document).ready(function(){ 
    $("#showHideMenu").click(function(){ 
     $("#contactFormHere").hide(); 
     $("#subMenuHere").toggle(); 

    }); 

    $("#showHideContact").click(function(){ 
     $("#subMenuHere").hide(); 
     $("#contactFormHere").toggle(); 
    }); 
}); 
+0

Спасибо Bhushan :) совет, принятый на борту! – user3921613

+0

Множество '$ (document) .ready()' s не влияет на производительность, а только на читаемость. Так что используйте только один файл для поддержания читабельности. –

+0

рад помочь вам :) –

0

Вам просто нужно добавить .hide(); к элементу вы хотите скрыть :)

$(document).ready(function(){ 
    $("#showHideMenu").click(function(){ 
     $("#contactFormHere").hide(); 
     $("#subMenuHere").toggle(); 

    }); 
}); 

$(document).ready(function(){ 
    $("#showHideContact").click(function(){ 
     $("#subMenuHere").hide(); 
     $("#contactFormHere").toggle(); 
    }); 
}); 
0

Ваш вопрос непонятен, и вам не нужно дублировать $ (документ) .ready();

$(document).ready(function(){ 
    $("#showHideMenu").click(function(){ 
     $("#subMenuHere").toggle(); 
    }); 
    $("#showHideContact").click(function(){ 
     $("#contactFormHere").toggle(); 
    }); 

}); 
+0

Вопрос не совсем ясен - это не идеально, но это не совсем неразборчиво. –

0

Если это важно, что один меню закрывается перед другими открывается, вам нужно использовать что-то вроде:

$(document).ready(function(){ 
    $("#showHideMenu").click(function(){ 
     if ($("#contactFormHere").is(":visible")) { // checks to see if the other element is visible 
      $("#contactFormHere").toggle(400, function() { 
       $("#subMenuHere").toggle(); 
      }); 
     } else { 
      $("#subMenuHere").toggle(); 
     } 
    }); 

    $("#showHideContact").click(function(){ 
     if ($("#subMenuHere").is(":visible")) { 
      $("#subMenuHere").toggle(400, function() { 
       $("#contactFormHere").toggle(); 
      }); 
     } else { 
      $("#contactFormHere").toggle(); 
     } 
    }); 
}); 
Смежные вопросы