来自iFrame的Rails中的JQuery回调问题

来自iFrame的Rails中的JQuery回调问题,jquery,ruby-on-rails-3,Jquery,Ruby On Rails 3,当我将iFrame与Rails表单一起使用时,我遇到了回调未触发的问题。我所做的是使用表单动态创建iFrame: $('#mapMain').append('<iframe id="saveAreaForm" />'); $('#saveAreaForm').attr('src', "areas/new"); 然后,我添加了一个回调函数来侦听操作(它运行时没有错误),并尝试了不同数量的函数参数: $('#saveAreaForm').contents().find('#crea

当我将iFrame与Rails表单一起使用时,我遇到了回调未触发的问题。我所做的是使用表单动态创建iFrame:

$('#mapMain').append('<iframe id="saveAreaForm"  />');
$('#saveAreaForm').attr('src', "areas/new");
然后,我添加了一个回调函数来侦听操作(它运行时没有错误),并尝试了不同数量的函数参数:

 $('#saveAreaForm').contents().find('#create_area_form').load(function () {
            $('#saveAreaForm').contents().find('#create_area_form').bind('ajax:success', function(e, data, status, xhr) {
                alert("success!");
            }).
            live('ajax:loading', function() {
                alert("loading!");
            }).live
            ('ajax:complete', function(dr) {
                alert("complete!");
            }).live
            ('ajax:error', function() {
                alert("error!");
            });
        });
然后我输入表格并按submit。上述事件均未触发,但调用了控制器操作(我使用了bind和live),在FireBug中,我得到一个响应:

我在另一个地方使用回调(用于链接,但不是表单提交),这很好


我能想到的唯一原因是iFrame没有返回回调,因为当我分配上面的回调时,我引用了我正在使用的id。

可能是iFrame还没有加载。您是否考虑过在iframe中设置回调并从内部调用父级?

这正是我今天早些时候所做的,现在似乎可以工作了。UJSJavaScript也有一个问题,就是它不是最新的。
 $('#saveAreaForm').contents().find('#create_area_form').load(function () {
            $('#saveAreaForm').contents().find('#create_area_form').bind('ajax:success', function(e, data, status, xhr) {
                alert("success!");
            }).
            live('ajax:loading', function() {
                alert("loading!");
            }).live
            ('ajax:complete', function(dr) {
                alert("complete!");
            }).live
            ('ajax:error', function() {
                alert("error!");
            });
        });