Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery AJAX选项卡加载后处理_Jquery_Ajax_Json_Tabs - Fatal编程技术网

jQuery AJAX选项卡加载后处理

jQuery AJAX选项卡加载后处理,jquery,ajax,json,tabs,Jquery,Ajax,Json,Tabs,形势 我有一个使用标签的页面。一些选项卡利用AJAX功能加载其内容。但是,我从服务器返回的响应严格来说并不是要显示的HTML 为了实例化这些选项卡,我使用以下命令,如果可能的话,我希望将处理保持在下面的代码中,因为这只是一个非常大的前端的一部分,它会自动创建一组挂钩: objElement.tabs({ heightStyle : "auto", show : { effect : "fade", duration : 400 },

形势

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

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

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"
    }
}
{
“内容”:
“
  • 列表项
一些示例HTML

”, “脚本”:[ “a.脚本”, “b.脚本” ], “标题”: “用户登录”, “css”:{ “dev.min”:“屏幕” } }
问题

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

  • 当需要收集响应时;如果我使用html(),它将返回一些html的结束标记,这些标记不是响应的一部分。确切地说,我已经在我的回复中说明了HTML,这些额外的标记不是它:

  • 如果我使用text()收集内容,任何打开的HTML标记都会被剥离
问题

为了将其解析为JSON对象,我如何才能获得响应而不让它看起来“被摆弄”呢

可能性

Zahid强调了我可以覆盖选项卡的默认ajax行为。我很乐意这样做,如果这意味着,我可以自动检测这种覆盖适用的条件


亲切问候

对于任何与我有相同问题的人,我已经解决了它,而不需要执行任何重写或类似操作

很简单,由于API发生了变化,获取响应的未记录方式如下:

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

对于任何和我有相同问题的人,我已经解决了,而不需要执行任何重写之类的操作

很简单,由于API发生了变化,获取响应的未记录方式如下:

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

你到底想要什么。重写ajax选项或在load事件中获取选项卡的内容以处理事情。我认为对于您的情况,最好覆盖选项卡的默认ajax请求。@Zahid-谢谢您的回复。我希望能够覆盖选项卡的ajax请求。我已经更新了我的原始问题,并提供了一些关于我目前如何实例化您想要的选项卡的详细信息。重写ajax选项或在load事件中获取选项卡的内容以处理事情。我认为对于您的情况,最好覆盖选项卡的默认ajax请求。@Zahid-谢谢您的回复。我希望能够覆盖选项卡的ajax请求。我更新了我的原始问题,并提供了一些关于我目前如何实例化选项卡的详细信息