我使用jQuery Ajax加载函数将内容加载到我的弹出窗口,并且我在加载函数回调函数中使用了submit函数,但由于某种原因,事件根本没有被触发。 (我使用jQuery jquery-1.3.2.min.js)
$('.popup-container').load(url, function(){
/** Do some stuff here */
$("form").submit(function() {
alert("Form submitted!");
return false;
});
});
答案 0 :(得分:3)
从jQuery 1.7开始,.live()
方法is deprecated。它将在jQuery 1.9中删除。使用.on()
附加事件处理程序。旧版jQuery的用户应使用.delegate()
而不是.live()
。
您可以使用jQuery方法live()
来解决此问题。将live()
与submit()
一起使用已添加到jQuery 1.4中,因此您应该获得更新。 Here is a video tutorial on using live()
with submit()
。
使用实时功能时,您的代码应如下所示:
$("form").live('submit' , function() {
alert("Form submitted!");
return false;
});
$('.popup-container').load(url);
答案 1 :(得分:0)
我相信return false会阻止它提交。
答案 2 :(得分:0)
正如Tim所说,jQuery 1.4在live
函数中增加了对提交处理程序的支持。他的代码应该适合你。
如果由于某种原因无法使用jQuery 1.4,则需要重新应用处理程序:
function applyHandlers(query) {
$(query).submit(function() { alert('foo'); return false; });
}
applyHandlers('form');
$('.popup-container').load(url, function() {
applyHandlers($('form', this));
});
有更优雅的方法可以做到这一点,但你得到了基本的想法。
答案 3 :(得分:0)
$(document).on('submit', '#form', function() {
代替:
$("#form").submit(function() {
解决了这个问题。希望这有帮助。