tenloginjestzajety
9.05.2017, 21:06:22
Witam
Posiadam kod (
https://jsfiddle.net/uqx2htj0/1/ ), który wyświetla textarea w danym divie. Znak $ zastępuje: document.getElementById. Niestety nie działa, dzięki za pomoc
<div class = "post">
treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1treść posta 1<br/>
<span class = "odpowiedz" data-id = "1">odpowiedz na post 1</span>
</div>
<div class = "post">
treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2treść posta 2<br/>
<span class = "odpowiedz" data-id = "2">odpowiedz na post 2</span>
</div>
<div class = "post">
treść posta 3treść posta 3treść posta 3treść posta 3treść posta 3<br/>
<span class = "odpowiedz" data-id = "3">odpowiedz na post 3</span>
</div>
<div id = "odpform">
<form>
<textarea id = "odptext"></textarea><br/>
<input type = "submit"/>
</form>
</div>
<script type="text/javascript">
document.getElementById('.odpowiedz').click(function() {
document.getElementById('#odpform').find('#odptext').val('odpowiadam na post ' + document.getElementById(this).data('id'));
document.getElementById(this).append(document.getElementById('#odpform'));
document.getElementById('#odpform').show();
});
</script>
trueblue
9.05.2017, 21:38:48
Nie .odpowiedz, nie #odpform i nie this.
Powinieneś podać id elementu - nazwa funkcji jednoznacznie o tym mówi.
Inna sprawa, że funkcja find i inne, których używasz nie zadziałają, ale skoro ich używasz, to zostaw $. Zdecyduj się albo na jQuery, albo na czysty JS.
bostaf
9.05.2017, 22:53:28
Jak dla mnie to działa - klikam "odpowiedz na post X" i pojawia się pole tekstowe "odpowiadam na post X"...
tenloginjestzajety
10.05.2017, 00:35:34
Chcę po prostu wstawić form pod buttonem, który klikam. Może jakieś rozwiązanie w JS, dzięki.
prawie wszystko działa, żeby móc pisać muszę trzymać cały czas przycisk myszki..
<script>
$('.odpowiedz'). click(function() {
$('#odpform').find('#odptext').val('');
$('#odpform').find('#idpost').val($(this).data('id'));
$('#odpform').find('#touser').val($(this).data('name'));
$(this).append($('#odpform')); // jak usunę to pisać można, ale formularz nie jest przy buttonie.
$('#odpform').show();
});
</script>
viking
10.05.2017, 05:31:04
Bo cały czas wywołujesz klika ze spana. Nie możesz tego form poza span wyrzucić?
tenloginjestzajety
10.05.2017, 15:25:10
nie wiem jak to zrobić, pół nocy nad tym siedziałem..
nospor
10.05.2017, 15:31:48
Dodales zdarzenie onclick dla span w ktorym to zdarzeniu wkladasz do span formularz. Skoro formularz jest w span, to robiac klik na formularz, znowy wywolujesz zdarzenie i tak w kolko...
Formularz ma byc za spanem.
nie:
$(this).append($('#odpform'));
a chociazby:
$(this).parent().append($('#odpform'));
viking
10.05.2017, 15:33:26
$('#odpform').insertAfter($(this));
bostaf
10.05.2017, 16:15:20
...i wisienkę na torcie:
$("#odptext").focus();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.