2013-11-30 3 views
0

У меня есть прямой поиск на веб-странице (используются CodeIgniter, jQuery и Bootstrap). В основном это работает следующим образом:Trigger Modal from ajaxContent

  1. На входе он запускает AJAX-запрос
  2. Это делает запрос на файл, который возвращает JSON-объект
  3. При успешном запросе он анализирует объект
  4. Все содержимое анализируется в строках таблицы

Одна из ячеек таблицы содержит кнопку. Кнопка должна открывать окно модальное, с помощью javascript. Почему JS? Потому что сначала нужно выполнить другой запрос AJAX для заполнения контента Modal.

Однако, это не работает. Он работает на кнопке, которая уже находится на странице в начале. Но я не могу заставить JS запускаться на AJAX-контенте.

В идеале, я бы хотел, чтобы это вызывало событие .click(), когда нажата кнопка.

Любые предложения?

+0

Вы можете разместить здесь свой код? –

+0

Кажется, что лучший способ решить проблему - после долгого онлайн-исследования опубликовать ее на Stack Overflow. Пять ударов позже, решение появляется в Google ... Я нашел это: http://forum.jquery.com/topic/live-is-deprecated-but-on-doesn-t-work-on-not-existent-markup , Я заменил $ ('. Loopje'). Click (function() {..}); by $ ('# existing_parent_element'). on ('click', '.loopje', function() {..}); –

+0

Вы можете активировать событие click на обратном вызове успеха запроса ajax, но ответ ниже, я полагаю, –

ответ

0

Событие click связывает события с элементами dom, которые уже доступны.

Если вы динамически добавляете элемент на свою страницу, у них не будет событий, с которыми вы связывались.

Вместо этого вам нужно присоединить обработчик событий к вашей кнопке. Вы можете сделать это через функцию .on() jQuery.

$(document).on('click', '#newButtonID', function() { 
    // Your second ajax call goes here 
});