Я использую jQuery 2.0.0, и у меня есть базовая страница с 2 ссылками. Если пользователь нажимает на ссылки для каждого из них, форма загружается через Ajax и вводится в контейнер. Раньше было возможно привязать события к будущим элементам с помощью live()
, но в наши дни это должно быть возможно с on()
Я думал, но он не запускает событие submit
, просто если я вставляю скрипт после того, как форма была введена, он работает. В браузере я использую Firefox 20.jQuery не запускает событие после введенной формы
страницы:
<!-- Normal HTML5 head with jQuery loader //-->
<a href="./login">Login</a>
<!-- Normal HTML5 end //-->
Вход (с помощью Ajax):
<form id="login" action="./login">
<label for="username">Username:</label>
<input type="text" name="username" id="username" />
<label for="password">Password:</label>
<input type="password" name="password" id="password" />
<input type="submit" value="Login" />
</form>
И, наконец, мой сценарий:
$(document).ready(function() {
$('a').on('click', function(e) {
$('body').load($(this).attr('href'));
e.preventDefault();
});
$('#login').on('submit', function(e) {
e.preventDefault();
// Some validation and as test if event is fired
alert("Fired!");
});
});
возможно дубликат [Электропроводка на кнопку события с помощью JQuery на() не срабатывает на впрыскивается HTML с помощью Ajax вызова] (http://stackoverflow.com/questions/8756684/wiring-up-click-event -using-jquery-on-doesnt-fire-on-injected-html-via-ajax-c) – undefined
'-1' Этот вопрос не показывает никаких исследований. – undefined
Теперь я использую jQuery 2.0 и больше не существует метода 'live()'. Таким образом, ответ на поставленную вами тему кажется устаревшим. – David