Ich habe eine JS-Funktion, die die Kommentare einer bestimmten Antwort lädt. Die Idee ist, eine API-Funktion aufzurufen und die Kommentare zurückzugeben. Das Problem ist, dass jedes Mal, wenn ich den Knopf drücke lädt es die Kommentare, die gleichen genauen Kommentare. Ich möchte etwas, dass Sie nach dem Drücken von Kommentar können Sie keine weiteren Kommentare laden. Ich würde zwar stopPropagation
würde den Trick tun, aber nichts passiert ist.Stoppt die Tastenaktion nach dem Drücken
Ist es möglich, wenn ich den Kommentar-Taste drücken, nachdem ich es nennen, es ist mein #showarea
gesetzt schließt
<div class="post-button clearfix">
<div class="post-button clearfix">
<button class="btn icon-chat show-textarea" title="Add a comment on this answer" type="button" data-answer="{$answer['publicationid']}">Comment</button>
<div class="textarea">
{include file="comment_form.tpl"}
</div>
</div>
</div>
comment_form.tpl
$('.comment-form').hide();
var commentsFetched = false;
$("body").on("click", ".show-textarea", function(){
if (commentsFetched) { // check the flag
return;
}
$.getJSON("/controller/api/comments/comment.php", {
answerid : answerid
}, function (data) {
commentsFetched = true;
$.each(data, function(i, comment) {
console.log(comment);
$('.comment-form').append('<article class="tweet-data">' +
'<div class="comment-items">' +
'<div class="qa-c-list-item hentry comment" id="c3574">' +
'<div class="asker-avatar">' +
'<a>' +
'<img width="40" height="40" src="' +
comment.user_photo +
'"></a>' +
'</div>' +
'<div class="qa-c-wrap">' +
'<div class="post-button">' +
'<button name="" onclick="" class="btn icon-flag" title="Flag this comment as spam or inappropriate" type="submit">flag</button>' +
'<button name="" class="btn icon-answers" title="Reply to this comment" type="submit">reply</button>' +
'</div>' +
'<span class="qa-c-item-meta">' +
'commented' +
' 1 day' +
' ago' +
' by ' +
'<a style="display: inline" href="" class="qa-user-link url nickname">' +
comment.username +
'</a> ' +
'<span class="qa-c-item-who-points"> ' +
'<span class="qa-c-item-who-points-pad">(</span><span class="qa-c-item-who-points-data">140</span><span class="qa-c-item-who-points-pad"> points)</span> ' +
'</span> ' +
'</span> ' +
'</span> ' +
'<div class="qa-c-item-content" style="color: #2d2727; font-size: 13px"> ' +
'<a name="3574"></a><div class="entry-content">' +
comment.body +
'</div> ' +
'</div> ' +
'</div> <!-- END qa-c-item --> ' +
'</div> ' +
'</div>');
});
});
$('.comment-form').show();
});
$("body").on("click", ".textarea-ok, .textarea-cancel", function(){
commentsFetched = false;
$('.comment-form').hide();
});
geladen geben kann ich tat, was Sie vorschlagen, und es macht die Replikation beenden, aber es ist nicht das, was ich will. Denn wenn ich cancel drücke, um mein Kommentarformular zu verbergen, und wenn ich Comment erneut drücke, wird der Kommentar erneut repliziert. Irgendeine Idee, @thedude –