Проблема с Javascript в плагине Django - PullRequest
0 голосов
/ 10 января 2012

Я собираюсь использовать библиотеку django-threadadedcomments в моем проекте Django.
https://github.com/HonzaKral/django-threadedcomments

В руководстве приведен пример кода, включая Javascript для ответа на комментарии в стиле многопоточных комментариев.
Я попытался протестировать этот образец, и библиотека работает сама по себе, но Javascript для ответа на комментарии не работает.
И нет ничего плохого в загрузке jQuery или в загрузке статических файлов Django.

Это учебник. http://goo.gl/vyFw9

Мне интересно:
1) Что-то не так с сценарием?
2) Если нет, есть идеи, почему это не работает?

function show_reply_form(comment_id, url, person_name) {
var comment_reply = $('#' + comment_id);
var to_add = $( new Array(
'<div class="response"><p>Reply to ' + person_name + ':</p>',
'<form method="POST" action="' + url + '">',
'<ul>',  '{{ form.as_ul|oneline }}',
'<li><input type="submit" value="Submit Comment" /></li>',
'</ul>', '</form>', '</div>').join(''));
to_add.css("display", "none");
comment_reply.after(to_add);
to_add.slideDown(function() {
    comment_reply.replaceWith(new Array('<a id="',
    comment_id,'" href="javascript:hide_reply_form(\'',
    comment_id, '\',\'', url, '\',\'', person_name,
    '\')">Stop Replying</a>').join(''));
});
}
function hide_reply_form(comment_id, url, person_name) {
var comment_reply = $('#' + comment_id);
comment_reply.next().slideUp(function (){
    comment_reply.next('.response').remove();
    comment_reply.replaceWith(new Array('<a id="',
    comment_id,'" href="javascript:show_reply_form(\'',
    comment_id, '\',\'', url, '\',\'', person_name,
    '\')">Reply</a>').join(''));
});
}

<a id="c{{ comment.id }}" href="javascript:show_reply_form('c{{ comment.id }}','{% get_free_comment_url post comment %}','{{ comment.name }}')">Reply</a>

1 Ответ

0 голосов
/ 10 января 2012

Первое, что я вижу, это то, что вы вообще не добавляете to_add к документу, то есть что-то вроде $('#someExistingDiv').append(to_add);

После создания to_add его необходимо добавить в DOM. Я не думаю, что есть какие-либо ошибки JS. Я уверен, что вы просто не видите созданный новый элемент комментария.

...