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

Обработчик click вызывается несколько раз или не всегда вызывается
Добрый день,

Используем MSVS/C#/MVC2

Скрипт в динамически подгружаемом ascx (правда, он подгружается каждый раз при загрузке страницы):

Код:
<script type="text/javascript">

    $(document).ready(function () {

        $('#myGrid .my_link').live('click', function () {
            if (confirm('Вы уверены?')) {
            //
            }
        });

    });    // document ready

</script>
Есть 2 пары вариантов:
1. Заворачивать в $(document).ready(function () или нет.
2. Ставить live или просто click:
Код:
        $('#button1').click(function () {
            $.ajax({
Если не заворачиваем в document.ready, а ставим live, то почему-то нажатие срабатывает, но далеко не всегда! (Нормально работает после перезагрузки частей страницы через AJAX, а при первой загрузке страницы не реагирует).

Если ставим live внутри document.ready, диалог по confirm вызывается несколько раз!
(При старте один раз, потом после каждой перезагрузки части страницы по AJAX добавляется по разу.)

Если ставить просто click внутри document.ready, то он работает, но только если контрол подгружается при первой загрузке страницы. А если он подгружается потом, то на нажатие никто не реагирует...

Как быть? Хочется ставить обработчики именно в том файле ascx, где лежат элементы, на которые они должны навешиваться.
Читал похожие темы здесь, все только обсмеивали авторов, а что конкретно делать (устроил бы именно такой ответ!!!), толком не предлагали. Мы сейчас занимаемся углублением знаний по C#/прочим языкам и сферам, связанным с приложением, а на JS/Jquery времени катастрофически не хватает.
Ответить с цитированием