У меня есть HTML и Ajax, поэтому, если вы нажмете определенное изображение (класс reply-quote
ниже), оно инициирует некоторый Ajax для эха HTML-кода в другом месте на странице.Показать HTML для определенного div по щелчку
Как показано ниже, файл HTML содержит один и тот же блок divs несколько раз. Моя проблема в том, что если пользователь нажимает на изображение, как я могу сделать Ajax показать HTML (в пределах show-reply
div) для этого конкретного блока, а не для всех?
<!-- BLOCK ONE -->
<div class="style1">
<div class="style2">
<img src="image.png" class="reply-quote" />
<div class="style3">
<div class="style4">
<div id="show-reply"></div>
<div class="reply-box">
<form class="reply-container no-margin" method="POST" action="">
<textarea class="reply-field" name="new_comment" placeholder="Write a reply..."></textarea>
<button name="submit" class="btn" type="submit">Post</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- BLOCK TWO -->
<div class="style1">
<div class="style2">
<img src="image.png" class="reply-quote" />
<div class="style3">
<div class="style4">
<div id="show-reply"></div>
<div class="reply-box">
<form class="reply-container no-margin" method="POST" action="">
<textarea class="reply-field" name="new_comment" placeholder="Write a reply..."></textarea>
<button name="submit" class="btn" type="submit">Post</button>
</form>
</div>
</div>
</div>
</div>
</div>
Вот JQuery я прямо сейчас:
$(document).ready(function() {
$(".reply-quote").click(function() {
$.ajax({
url: 'assets/misc/show_reply.php', // this file simply echoes back the HTML to the `show-reply` div
type: "POST",
data: {post_id: $(this).attr('id')},
success: function(data) {
$("#show-reply").append(data); // this is where the problem lies
}
});
});
});
В моем понимании, я должен каким-то образом реализовать $(this), parent(), find(), etc.
вместо текущей строки, я использую ($("#show-reply").append(data);
). Вопрос в том, должна ли эта строка быть такой, чтобы, щелкнув изображение, он отображает только HTML для этого конкретного блока?
Пожалуйста, помогите!
Не работает. Когда я щелкнул изображение, он ничего не сделал. :/ – John
@John была ошибка, которую я исправил теперь '$ reply.next(). Find (". Show-reply ")' –
Не будет ли это причиной неопределенного поведения? Поскольку ajax является асинхронным, нет гарантии, что '$ reply' будет по-прежнему оставаться одним и тем же значением после того, как вы попадете в блок успеха. – Jordan