我将 jQuery UI 库升级到 1.10 版本。根据文档,下面的代码假设可以工作,但事实并非如此。请告诉我是否是我在某处犯了错误,或者他们的新 jQuery UI 库只是充满了错误。
如果您想实时尝试下面的代码,我设置了测试链接。
这些选项卡将提取以下 JSON 字符串:
对于“GOOD Json”选项卡:
{
"html":"This is HTML text from good Json",
"msgWarning":"This is message text from good Json",
"msgSuccess":"","misc":[]
}
对于“坏 Json”选项卡:
{
"html":"This is HTML text from bad Json",
"msgWarning":"This is message text from bad Json",
"msgSuccess":"","misc":[]
}blablabla
您会注意到“JSON Good”选项卡加载得很好。由于 JSON 格式错误,“JSON Bad”选项卡将永远不会加载。在以前的 jQuery UI 版本中,我使用 ERROR 设置来捕获此类错误。但是无论我尝试什么,新代码都不会触发这个错误。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
</head>
<body style="padding: 10px 10px 10px 10px;" >
<script type="text/javascript">
function myprofileShow()
{
$("#tabs-myProfile").show();
$("#tabs-myProfile").tabs();
$('<li><a href="http://cl-t029-082cl.privatedns.com/public/json-good.html">JSON Good</a></li>').appendTo("#tabs-myProfile .ui-tabs-nav");
$('<li><a href="http://cl-t029-082cl.privatedns.com/public/json-bad.html">JSON BAD</a></li>').appendTo("#tabs-myProfile .ui-tabs-nav");
$("#tabs-myProfile").tabs("refresh");
$("#tabs-myProfile").tabs('destroy');
$("#tabs-myProfile").tabs({
beforeLoad: function( event, ui ) {
ui.panel.html('working...');
ui.ajaxSettings.dataType = "json";
ui.ajaxSettings.dataFilter = function(data) {
var jsonData = $.parseJSON(data);
return jsonData.msgWarning + jsonData.html;
};
ui.jqXHR.done(function(data, textStatus, jqXHR) {
//do nothing
});
ui.ajaxSettings.error = function(jqXHR, textStatus) {
ui.panel.html('<b>Something went wrong test 1</b>');
};
ui.jqXHR.error(function() {
ui.panel.html('<b>Something went wrong test 2</b>');
});
ui.jqXHR.fail(function(jqXHR) {
ui.panel.html('<b>Something went wrong test 3</b>');
});
}
});
$("#tabs-myProfile").tabs({selected: 1});
}
</script>
<div id="tabs-myProfile" style="display: none;">
<ul>
</ul>
</div>
<div>
<script type="text/javascript">
myprofileShow();
</script>
</div>
</body>
</html>