Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2012, 06:59
Новичок на форуме
Отправить личное сообщение для GoodBoy123 Посмотреть профиль Найти все сообщения от GoodBoy123
 
Регистрация: 19.07.2012
Сообщений: 3

Нажатие button в ajax контенте
Здравствуйте. Работаю с jquery 1.7.2. Нужно обработать нажатие кнопки в генерированной ajax методом страницы. Вот такой код:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            var stepnumber=1;

            if (stepnumber===1) {
                $.ajax({
                    type: "GET",
                    url: "GetTemplate.php",
                    data: "stepnumber="+stepnumber,
                    dataType: "text",
                    success: function(html){
                        $("div.#container").append(html)
                    }
                });
                stepnumber = stepnumber + 1;
            }
            $('#submit').on('click',function(){
                alert("veff");
            });
            $('#hero').on('click',function(){
                alert("veff");
            });
        });
    </script>


<body>
<div class="container" id="container"><input type="button" id="hero" value="heroes"></div> <!-- /container -->
</body>


Кнопка с id hero нормально работает, а с id submit нет. использую метод .on();
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2012, 07:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

$("div.#container").append(html)
точку уберите, должно быть div#container или div.container
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2012, 07:10
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

но все равно задача не понятна
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2012, 09:01
Новичок на форуме
Отправить личное сообщение для GoodBoy123 Посмотреть профиль Найти все сообщения от GoodBoy123
 
Регистрация: 19.07.2012
Сообщений: 3

Точку убрал.
Задача:
Есть страница:
<body>
<div class="container" id="container"><input type="button" id="hero" value="heroes"></div> <!-- /container -->
</body>


В div с id container через ajax вставляется разметка:

$(document).ready(function() {
            var stepnumber=1;

            if (stepnumber===1) {
                $.ajax({
                    type: "GET",
                    url: "GetTemplate.php",
                    data: "stepnumber="+stepnumber,
                    dataType: "text",
                    success: function(html){
                        $("div#container").append(html)
                    }
                });
                stepnumber = stepnumber + 1;
            }


<form class="form-horizontal">
        <fieldset>
            <legend>Выбор</legend>
            <div class="control-group">
                   <label class="control-label" for="region">Выберите:</label>
                   <div class="controls">
                   <select class="span3" id="region" name="region">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                      </select>
                      </div>
           </div>
            <br><button id="submit" type="button" class="btn btn-primary" name="go">Дальше</button>
        </fieldset>
    </form>


Нужно в этом сформированном html обработать нажатие кнопки (<button id="submit" type="button" class="btn btn-primary" name="go">Дальше</button>).

$('#submit').on('click',function(){
                alert("veff");
            });
            $('#hero').on('click',function(){
                alert("veff");
            });
        });


При том как сделано сейчас кнопка с id hero (которая изначально есть в коде страницы) обрабатывается (выдает alert), а кнопка с id submit нет.

Последний раз редактировалось GoodBoy123, 20.07.2012 в 09:04.
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2012, 10:26
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

$(document).on( 'click', '#submit', function() {
    alert("veff");
});
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2012, 10:33
Новичок на форуме
Отправить личное сообщение для GoodBoy123 Посмотреть профиль Найти все сообщения от GoodBoy123
 
Регистрация: 19.07.2012
Сообщений: 3

Большое спасибо. Если не сложно, можно ссылку на статью, где можно было бы прочитать, почему Ваш вариант работает, а мой нет.

Последний раз редактировалось GoodBoy123, 20.07.2012 в 10:36.
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2012, 10:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

http://api.jquery.com/on/
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2012, 10:55
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

не используйте id="submit".

единственная кнопка и так вроде сабмитит форму по спеке, не уверен...
Ответить с цитированием
  #9 (permalink)  
Старый 20.07.2012, 12:47
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Дело не в этом. Там контент грузится аяксом, а вот обработчик на кнопку вешается еще до того, как она была загружена. Потому и не работало.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #10 (permalink)  
Старый 20.07.2012, 14:00
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

ну да, да, это я понял
обработчик, кстати, можно и в колбеке указать.

$(document).ready(function () {
  var stepnumber = 1;

  if (stepnumber === 1) {
    $.ajax({
      type: "GET",
      url: "GetTemplate.php",
      data: {stepnumber: stepnumber},
      dataType: "text",
      success: function (html) {
        $("div#container").append(html);
        $('button[name="go"]').click(function (e) {
          e.preventDefault();
          alert('veff');
        });
      }
    });
    stepnumber = stepnumber + 1;
  }
});


я к тому, что не надо использовать в вёрстке айди, которые совпадают по названию с html-элементами (submit, table, tr, td etc.).

Последний раз редактировалось tadjik1, 20.07.2012 в 14:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax. Работа с историей. Отследить нажатие "назад/вперед" Dorian_bs Общие вопросы Javascript 3 15.12.2011 03:19
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Проблема radio button с кроссбраузерностью shkarbatov Javascript под браузер 0 28.07.2011 10:55
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12