jqueryui tabs问题:为什么ajax加载的脚本第一次不能工作?

时间:2011-09-02 12:44:46

标签: php jquery ajax jquery-ui tabs

我有一系列标签,其中的内容是从PHP文件加载的,其中包含一些jquery代码。在初始页面加载时,此代码不起作用,并且在Firebug中根本不显示。如果我单击另一个选项卡(然后它通过相同的PHP脚本加载内容),代码将显示并运行。如果我单击回原始默认选项卡,代码将再次运行。

所以要点是:嵌入式jquery代码在最初创建选项卡时不起作用(甚至不显示),但是一旦你单击选项卡上的内容(并在ajax中触发重新加载)就会生效。

创建标签的代码:

var xmlParser = function(xml) {
    var index = 0;
    $(xml).find("group").each(function() {
        var name = $(this).find("name").text();
        tabArray[name] = index;
        $("#tabs").tabs( 'add', 'perms.php?m=getgroupTAB&g=' + name, name);
        index++;
    })
};

[我为以后的标签操作保留了一个索引]

从PHP加载的代码是:

<script>
                $(function(){
                    $("#%name%_addperm").click(function(){
                        addperm("%name%", $("#%name%_txtperm").val(), $("#%name%_permWorld").val()); 
                    });
                    $("#%name%_delperm").click(function(){
                        delperm("%name%", $("#%name%_PBox").val());
                    });

                    $("#%name%_manageUserGroup").click(function(){
                        manageUserGroups("%name%");
                    });
                });

            </script>';

其中%name%在加载前被groupname替换。

同样,如果我让页面加载,然后单击选项卡(加载内容),此代码可以很好地工作。如果我尝试在默认页面上使用这些按钮,它就不起作用(并且代码根本不会出现在firebug中)。

我尝试让初始脚本在执行其他所有操作后选择其他选项卡($('#tabs')。tabs(例如“select”,2)),它会给出相同的结果。用户必须单击其选项卡才能加载工作脚本。

有人看过这个,可以帮忙吗?

0 个答案:

没有答案