Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблемы с click и hide (https://javascript.ru/forum/misc/54633-problemy-s-click-i-hide.html)

mortido 25.03.2015 20:51

проблемы с click и hide
 
Всем привет. Есть код:
<script>
$(function () {
  $('.add-comment').click(function(){
    var editor = $('.editor');
    if (editor.is(":hidden")){
      editor.slideDown();
    }else{
      editor.slideUp();
    }
    return false;
  });
  
  $('.comment-ans').click(function(){
    var $editor = $('.editor');
    $editor.hide();
    var mid = $(this).attr("id");
	$editor.remove();
    var clone = $editor.clone();
    setTimeout(function(){
      $(clone).css("margin", "5px 0 5px 20px");
      $(clone).insertAfter("div#msg"+mid).slideDown();
      $("input[name=parent]").val(mid);
    }, 600);
  });
});
</script>

При клике на comment-ans появляется textarea, при повторном клике она сначала исчезает, а потом снова появляется. Подскажите, как сделать, чтобы при первом клике textarea появлялась, а при втором исчезала. Спасибо

рони 25.03.2015 21:03

Цитата:

Сообщение от mortido
setTimeout

зачем?

mortido 25.03.2015 21:24

хз, код в нете нашел, сам в js не силен, пробовал немного манипулировать кодом, но ничего не выходит.

рони 25.03.2015 21:35

mortido,
а clone зачем?

рони 25.03.2015 21:36

mortido,
а минимальный html ?

mortido 25.03.2015 21:57

да не знаю, говорю же код в интернете нашел, он не мой. он нужен для древовидных комментариев.

рони 25.03.2015 22:25

Перенос поля ответа в нужный пост
 
mortido,
вариант без jQuery для медитации
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .comment-ans{
   cursor: pointer;
 }
 form {
   display: none;
 }

 div form {
   display: block;
 }

  </style>
   <script>
    var node;
    document.addEventListener("click", function(event) {
    var el = event.target;
    if (el.classList.contains('comment-ans')) {
        node && node.querySelector('.comment-ans') && (node.querySelector('.comment-ans').value = 'ответить');
        el.value = (node == el.parentNode) ?  'ответить' : 'закрыть' ;
        node = (node == el.parentNode) ? document.body : el.parentNode
        node.appendChild(document.forms.mes);

    }
});

  </script>
</head>

<body>
<div>01<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>02<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>03<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>04<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>05<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>06<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>07<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>08<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>09<input name="" type="button" value="ответить" class="comment-ans"></div>
<div>10<input name="" type="button" value="ответить" class="comment-ans"></div>
<form name="mes" action="http://">
   <textarea name=""></textarea>
</form>
</body>

</html>


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