Вставьте форму ответа на странице с помощью Jquery - PullRequest
5 голосов
/ 19 января 2009

Я создал многопоточную систему комментариев для правильного изучения php и javascript / jquery. Я делал биты и покачивания в прошлом, но принял новогоднее решение, чтобы выучить его правильно.

У меня проблемы с вставкой формы ответа в дерево комментариев под комментарием. Я знаю, что это, вероятно, довольно просто, но как вставить HTML на страницу, когда кто-то нажимает на ссылку.

Этот код не работал для меня:

$(document).ready(function(){
    $(function() {
        $('a#reply').click(function() {

            $(this).append("the html blah");    

        });
    });

}); 

Кто-нибудь видел, где я иду не так?

Ответы [ 3 ]

3 голосов
/ 19 января 2009
$(document).ready(function(){
        $('a#reply').click(function() {
            $(this).after("the html blah");
            return false;
        });
});

Возможно, вам понадобится 'return false;' чтобы предотвратить перезагрузку страницы при нажатии на ссылку.

2 голосов
/ 19 января 2009

Если ни одно из других предложений не работает, возможно, ваш селектор не работает должным образом. В приведенном вами примере вы, похоже, ищете ссылку, подобную этой:

<a id='reply' href='#'>add comment</a>

Это правильно? Вы не упомянули, как вы генерировали html, но с asp.net я знаю идентификатор на стороне сервера! = Идентификатор на стороне клиента, и вам нужно изменить ваш селектор так:

$('a[id$=reply]')

В любом случае, вот полный пример с HTML, который отлично работает для меня:

<html>
    <head>
        <script type="text/javascript" src='scripts\jquery-1.2.6.min.js'></script>
    </head>
    <body>
        <div style='height:400px'>
            Space to demonstrate that clicking the link does not scroll the page.
        </div>
        <div id='main'>
            <a href='#' id='clicky'>here</a>
        </div>
    </body>
    <script>
        $(function(){
            $('a#clicky').click(function(){
                $(this).after('Hello There')
                return false;
            });
        });
    </script>
</html>
1 голос
/ 19 января 2009

Чтобы добавить к ответу rodbv, вы добавите текст "html blah blah" внутри ссылки, по которой щелкнули, потому что вы используете append. Измените его на:

$(this).after("the html");

И он запишет html после ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...