jquery タブを動的に作成しました。タブの名前を変更したい。選択したタブをクリックすると。テキストボックスがぼかしに表示され、テキストボックスの値がタブに設定されます。また、別のタブでこれを実行しようとすると、現在のタブと以前のタブの両方の名前が変更されます。等々...
$(document).ready(function() {
$("#tabs").tabs({
tabTemplate: "<li><a href='#{href}'>#{label}</a> <p title='close' id='removeTab' style='cursor:pointer;display:inline'>x</p></li>"
});
});
$(function() {
for (i=0; i<3; i++){
var title = '<span id="a'+i+'">Tab..... ' + i;
var url = '#fragment-' + i;
addTab(url, title, i);
}
var index =10;
index++;
$("#addTab").live('click', function() {
index++;
var title = '<span id="a'+index+'">Tab..... ' + index;
var url = '#fragment-' + index;
addTab(url, title, index);
});
function addTab(url, title, index) {
$('#tabs').tabs("add", url, title, [index]);
$('#a'+index).click(function(){
var _current = '#a'+index
if($(_current ).parent().parent().hasClass('ui-tabs-selected')){
$(_current).hide();
$('#editTabName').stop(false, true).hide();
var nameField = '#editTabName';
$(nameField).css({
top: '12px',
left: $(this).parent().offset().left + 8+'px',
zIndex:100,
position:'absolute'
});
$(nameField).val($(_current).html());
$(nameField).show(50);
$(nameField).focus();
$(nameField).blur(function (){
alert(_current);
newName = $(nameField).val();
$(_current).html(newName);
$(nameField).hide();
$(_current).show();
});
}
});
}
$('#removeTab').live('click', function() {
var $tabs = $('#tabs').tabs();
var selected = $tabs.tabs('option', 'selected');
if(selected == -1)
selected = $('p[id=removeTab]').index(this);
$('#tabs').tabs("remove", [selected]);
});
});