У меня проблемы с простым меню скрыть / показать с помощью jQuery.
HTML-разметка выглядит следующим образом:
<div class="content borderRad5" id="mainWrapper">
<div id="ticketControl" class="noPrint blackBoxShadow">
<span id="printThis" class="TicketButton">Print</span>
<span id="emailThis" class="TicketButton">Email as Word</span>
<div id="emailDoc" class="blackBoxShadow borderRad5">
<div class="underline">Email to:</div>
<label>Email</label>
<span>
<input type="text" class="smallText" />
</span>
</div>
<span id="wordThis" class="TicketButton">Save as Word</span>
<span id="addToLoyalty" class="TicketButton">Add to Account</span>
<span id="addNote" class="TicketButton">Add Note</span>
<span id="refundThis" class="TicketButton">Refund</span>
</div>
---- THE REST OF THE PAGE ----
</div>
#ticketControl
- это скрытый div, содержащий меню. Если щелкнуть мышью в любом месте внутри .content
div, я хочу, чтобы она скользила в поле зрения. JQuery ниже делает это просто замечательно.
$('.content').live('click', function () {
$('#ticketControl').slideToggle('slow');
});
Однако у меня есть второй скрытый элемент div в этом главном меню #emailDoc
, который должен отображаться при нажатии на #emailThis
, очевидно, это легко, НО, я не могу помешать ему скрыть меню снова.
Я понимаю, почему это происходит, потому что что-то в .content
вызывает функцию slideToggle, как указано выше, но я не могу остановить это, я пытался использовать .not('.TicketButton')
, а также пытался получить родительские идентификаторы и исключать их и так далее, но я явно упускаю что-то очевидное!
Любая помощь очень ценится (и да, я понимаю, что должен использовать jquery on
, но сейчас я придерживаюсь live
...!)