Показать сообщение отдельно
  #1 (permalink)  
Старый 08.06.2010, 21:44
Новичок на форуме
Отправить личное сообщение для hara Посмотреть профиль Найти все сообщения от hara
 
Регистрация: 08.06.2010
Сообщений: 5

live click выполняется несколько раз
Здравствуйте,
в общем то уже задал данный вопрос на одном форуме, но не думаю что это является проблемой.

Итак:

При подгрузке контента в котором есть скрытые элементы, на которые вешаются события click (функцией live),
эти события срабатывают столько раз, сколько этот самый контент и загрузили.

То есть, другими словами:

Нажимаем на ссылку -> загружается Html внутри которого есть скрытый элемент и jquery код который вешает событие на этот элемент.
Так вот если этот элемент после загрузки сделать видимым - то на него вешается событие onClick и всё в порядке, - но если опять нажать на
первую ссылку - событие отработает дважды.
Причём такая проблема только если грузится html со скрытым элементом, который показывается только после загрузки.

Для того что бы можно было лучше понять что я имею ввиду привожу код:

Код файла index.html (ненужные теги удалены)
<script type="text/javascript">
            $(document).ready(function(){
                $('a.upload').bind('click',function(){
                    $('div#uploadContainer').load('./upload.html');
                });
                $('a.uploadedLink').live('click',function(){
                    $('a.hiddenLink').show();
                })
            });
        </script>
        <a href="#" class="upload">Upload content</a>&nbsp;&nbsp;
        <br><br><br>
        <div id="uploadContainer">
            Click above to load here some html
        </div>

Весь код файла upload.html
<script type="text/javascript">
    $(document).ready(function(){
        $('a.hiddenLink').live('click',function(){
            alert('Hello from hidden link');
        });
    });
</script>
<a href="#" class="uploadedLink">Click me to show hidden content</a><br><br>
<a href="#" class="hiddenLink" style="display:none;">Click me to trigger live event one or multiple times</a>


Возможно кто то уже сталкивался с данной проблемой?

Если будет нужно, - файлы приложил.
test.zip - только файлы index.html и upload.html (799Б)
и test-with-jquery.zip - три файла index.html, upload.html и jquery-1.4.2.min.js (24.2Кб) (что бы можно было просто распаковать и проверить результат)
Вложения:
Тип файла: zip test.zip (799 байт, 0 просмотров)
Тип файла: zip test-with-jquery.zip (24.2 Кб, 1 просмотров)
Ответить с цитированием