1

我对使用 CGI::Ajax 有疑问。

我的 CGI::Ajax 注册函数将返回一个表格,我想通过使用 jquery 插件 tablesorter 来控制表格的样式

结果表被返回,但我无法控制它的样式,即我无法在调用函数中使用插件tablesorter对表进行排序

主要部分代码如下,这些只是部分代码,如有标点问题,请忽略

如您所见,主程序“show_html”可以对表“metatable”进行排序;但是,即使我将 id='resulttable' 放在那里,返回表“resulttable”也无法排序。

有人可以帮我解决这个问题吗?

谢谢

my $cgi = CGI->new();
my $pjx = CGI::Ajax->new('js_fun'=>\&perl_fun);

sub per_fun{
...
print $cgi->start_table({id=>'resulttable'}),
...
}



sub show_html{ //partial code
print $html_fh $cgi->start_html(
  -title=>'Selected GEO MetaData',

  -style=> {-src=>[ "jquery-ui-1.8.20.custom.css",
            "jq_tablesorter/themes/green/style.css",
        "jq_ui_redmond/css/selectable.css",
          ]
    },    
  -script=>[
            { -type => "text/javascript",
              -src => "$tempdir/jq/js/jquery-1.7.2.min.js"
            },
            { -type => 'text/javascript',
              -src => "$tempdir/jq/jq_tablesorter/jquery.tablesorter.min.js"
            },
    { -type => 'text/javascript',
              -src => "$tempdir/jq/jq_ui_redmond/js/jquery-ui-1.8.20.custom.min.js"
            },
           q<
                  $(document).ready(function(){
                    $("#metatable").tablesorter();
            $("#resulttable").tablesorter();
     )}

      ....


 $("#done").click(function(){
            $("#metatable").slideUp();
            js_fun(['val1'],['result1']); //ajax
            return false;
            })


.....

print $cgi->div({id=>'result1'});

.....
}
4

1 回答 1

0

在 AJAX 请求成功返回后,必须重做结果表到 sort 方法的绑定,如下所示:

$.post("ajax/jsfun", "['val1']", function(data) {
    $('#resulttable').html(data);
    $("#resulttable").tablesorter();
    });
于 2012-06-27T22:52:25.817 回答