谢谢大家的帮助!我最终做了以下事情:
- 将无序列表 (ul) 样式化为制表符
- 使每个列表项 (li) 可拖动
- 在 li 的 onstop 事件上,在当前鼠标位置打开一个对话框(带有 iframe)。
- 将 iframe 的 src 属性设置为选项卡内容。
下面的代码片段:
$('li').draggable({
iframeFix: true,
stop: function (event) {
var title = //give a title
var newId = //create a unique id
$('#draggableTabsContainer').append('<div id="' + newId + '"></div>');
var x = $(this).position().left;
var y = $(this).position().top;
$('#' + newId).dialog({
iframe: true,
autoOpen: false,
width: 700,
height: 700
});
$('#' + newId).append($("<iframe id='frm" + newId + "' class='tab-iframe'/>")).dialog('open');
var url = $(this).find('a.tab').data('src');
$('#frm' + newId).attr('src', url);
$('#' + newId).dialog({ position: [x, y], 'title': title });
$(this).remove();
}
});
ul/li 的 HTML:
<ul id="tablist">
<li><a class="tab" href="#" data-src="controller_name/view_name1"><b>View 1</b></a></li>
<li><a class="tab" href="#" data-src="controller_name/view_name2"><b>View 2</b></a></li>
</ul>