обработка событий jQuery и функция готовности - PullRequest
1 голос
/ 23 августа 2009

Я очень новичок в jQuery (я начал этим утром), и меня смущает, что именно запускает функцию, переданную в функцию готовности.

Согласно документации jQuery [http://docs.jquery.com/Events/ready#fn] функция готовности

Связывает функцию, которая будет выполнена всякий раз, когда ДОМ готов пройденный и управляемый.

Какие события могут привести к тому, что дерево DOM будет готово для прохождения? В частности, я применяю функцию ready ко всему дереву документов:

<script type="text/javascript">
    $(document).ready(function(){

        $("p + p").hide ();

        $("a").click(function(event){
            $("p + p").toggle ();
            event.preventDefaults ();
        });

    });

</script>

Похоже, что эта функция вызывается не только при первой загрузке страницы, но и в результате нажатия на гиперссылку.

HTML содержит несколько абзацев, а $("p + p").hide (); приводит к тому, что все, кроме первого, будут скрыты при загрузке страницы. У меня есть гиперссылка, встроенная в первый абзац, которую я хочу использовать для отображения оставшихся абзацев.

Однако, похоже, что нажатие на гиперссылку (<a href="">Read more...</a>) приводит к тому, что предоставленная функция готова к повторному выполнению, что скрывает мои абзацы сразу после их отображения.

Это тот случай, когда действие внутри щелчка заставляет весь DOM документа снова быть готовым к повторному просмотру? Или вся страница загружена браузером? Любая идея будет принята с благодарностью.

С уважением,

Owen.

1 Ответ

2 голосов
/ 23 августа 2009

Из быстрого просмотра я заметил опечатку в том, что метод, который вы хотите вызвать -

event.preventDefault()

Метод, который вы вводите в готовое событие, не выполняется снова полностью, я думаю, что он делает то, что должен, с помощью обработчика события .toggle, который вы установили.

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