场合
我有一个使用标签的页面。某些选项卡使用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,这些额外的标签不是它:
问题
如果没有它出现“fiddled”以便将其解析为JSON对象,我怎样才能得到响应。
可能性
Zahid强调我可以覆盖与标签相关的默认ajax行为。我很乐意这样做,如果这意味着,我可以自动检测适用这种覆盖的条件
亲切的问候
答案 0 :(得分:1)
对于任何与我有同样问题的人,我已经想出了它,而不需要执行任何覆盖等。
很简单,自API更改后,获取响应的未记录方式如下:
$().tabs({
beforeLoad: function(event, ui) {
ui.jqXHR.done(function(response) {
console.log(response);
});
}
});