jQuery AJAX选项卡后加载过程

时间:2013-07-18 03:33:15

标签: jquery ajax json tabs

场合

我有一个使用标签的页面。某些选项卡使用AJAX功能加载其内容。但是,我从服务器返回的响应并不严格是要显示的HTML。

要实例化选项卡,我使用以下内容,如果可能的话,希望将处理保持在下面的代码中,因为这只是一个非常大的前端的一部分,它会自动创建一组钩子:< / p>

objElement.tabs({
    heightStyle : "auto",
    show : {
        effect : "fade",
        duration : 400
    },
    hide : {
        effect : "fade",
        duration : 400
    },
    load: function( event, ui) {
        /* ### Processing here ###
        * Would like to be able to pass the response to a "postrequestprocedure"
        * function
        */
    });
}

jQuery选项卡将数据直接输入到选项卡。我知道我可以使用load事件进行一些后期处理。以下是服务器响应的示例,它是一个JSON对象,它使用换行标记显示如下所示。我已经把它们弄清楚了。

{
    "content" : 
        "<span><ul><li>list item</li></ul><p>Some example HTML</p></span>",
    "script":[
        "a.script",
        "b.script"
    ],
    "title":
        "User Login",
    "css": {
        "dev.min":"screen"
    }
}

问题

  • ajax属性只通过$ tabs部分公开({load:function(event,ui)});接口;我无法通过这种方式访问​​相关的操作/参数。

  • 到了收集回复的时候;如果我使用html(),它将返回某些HTML的结束标记,而不是响应的一部分。确切地说,我已在我的回复中考虑了HTML,这些额外的标签不是它:

  • 如果我使用text()收集内容,则会删除任何打开的HTML标记

问题

如果没有它出现“fiddled”以便将其解析为JSON对象,我怎样才能得到响应。

可能性

Zahid强调我可以覆盖与标签相关的默认ajax行为。我很乐意这样做,如果这意味着,我可以自动检测适用这种覆盖的条件

亲切的问候

1 个答案:

答案 0 :(得分:1)

对于任何与我有同样问题的人,我已经想出了它,而不需要执行任何覆盖等。

很简单,自API更改后,获取响应的未记录方式如下:

$().tabs({
    beforeLoad: function(event, ui) {
        ui.jqXHR.done(function(response) {
            console.log(response);
        });
    }
});