我将自己的内容添加到新打开的标签时遇到了一些问题。
add: function( event, ui ) {
_CURRENT_TAB = $(ui.tab).attr('href');
var tab_content = "TEST";
$( ui.panel ).append( "<p>" + tab_content + "</p>" );
$tabs.tabs('select', '#' + ui.panel.id);
但是我在点击功能上回调:
function tb(tab_title){
return '#\\#tabs'+tab_title;
};
$("#buuton").click(function(){
$.post("open.php", { read: file },
function(data){
var read = data.read;
alert(read);
tab_content = read;
}, "json");
$tabs.tabs( "add", "#tabs-" + tab_counter, "Lorem" );
tab_counter++;
$(tb(tab_title)).append(tab_content);
}
我正在使用这个:http://jqueryui.com/demos/tabs/#manipulation。 AJAX工作 - 它给了我一个我想要的价值。我做错了什么?我该怎么办?
答案 0 :(得分:0)
问题在于了解异步事务的工作原理。当你调用$ .post时,javascript会在.post完成之前继续执行。这是异步事务的本质。所以你基本上在你的.post函数设置tab_content的值之前调用你的tb函数。你的逻辑应该是这样的,以便在.post处理函数中调用tb()函数:
$.post("open.php", { read: file }, function(data){
var read = data.read;
alert(read);
tab_content = read;
$tabs.tabs( "add", "#tabs-" + tab_counter, "Lorem" );
tab_counter++;
$(tb()).append(tb(tab_title));
}, "json");