Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Показать или скрыть блок. (https://javascript.ru/forum/jquery/63025-pokazat-ili-skryt-blok.html)

ureech 12.05.2016 22:30

Показать или скрыть блок.
 
Вечер добрый.
<span class="mails">Показать E-Mail</span>
<span class="mail" style="display:none"></span>

$(document).ready(function() {
var email =text;

if($('.mail').css('display') == 'none'){
$('.mails').on('click',function(){
$('.mail').css('display','inline').text(email);
$('.mails').toggleClass('none')
})
}
if($('.mail').css('display') == 'inline'){
$('.mail').on('click',function(){
$('.mail').css('display','none');
$('.mails').toggleClass('none')
});
}
})

Первый click срабатавает.Один спан скрывается, другой с текстом появляется, но вот второй клик не работает.Почему?

рони 12.05.2016 22:34

ureech,
а не пробовали мыслить логично ... один клик,а в нём проверка состояния элемента на момент клика и принятие решения, в зависимости от этого состояния.

ureech 12.05.2016 22:42

Все мысли в php на данный момент, а с ассинхронностью как то уже не важно.:)

рони 12.05.2016 23:08

ureech,
:blink:

ureech 12.05.2016 23:24

Цитата:

Сообщение от рони
а не пробовали мыслить логично ... один клик,а в нём проверка состояния элемента на момент клика и принятие решения, в зависимости от этого состояния.

Как сделать один клик, если элементов два?

рони 12.05.2016 23:44

ureech,
попробуйте описать алгоритм того что хотите получить в результате.

рони 12.05.2016 23:52

Цитата:

Сообщение от ureech
но вот второй клик не работает.Почему?

потому что в строке 10 написано НЕ назначать клик!!!(или назначить только в случае 'inline')

ureech 12.05.2016 23:58

Цитата:

Сообщение от рони
попробуйте описать алгоритм того что хотите получить в результате.

Имею
<span class="mails">Показать E-Mail</span>

видимым.Кликаю по нему и он изчезает и появляется
<span class="mail" ></span>
в который заносится вместо "Показать E-Mail" сам email,который содержится в переменной
var email

Затем всё в обратном порядке.

рони 13.05.2016 00:12

ureech,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   .mail{
      display:none
   }

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
 $(function(){
      var mail = $(".mails, .mail"), email = "text";
      mail.on("click", function() {
      mail.toggle().eq(1).text(email);
})
   })
  </script>
</head>

<body>

<span class="mails">Показать E-Mail</span>
<span class="mail"></span>


</body>
</html>

ureech 13.05.2016 00:38

Вроде работает,спасибо.Только странно, что на локальном не хочет, ну да с этим уже завтра.Доброй ночи.


Часовой пояс GMT +3, время: 17:11.