,所以我有大约20个标签(网页)中,许多子标签,全部采用下面类似的代码显示:减少jQuery UI的标签代码
我在想我怎么能缩小这个代码在主把JS文件和使用/再使用用于每个股利??,因为这些标签被加载。
我打的障碍是,我需要照顾所有这些div的,所以我必须真写相同的代码20+次???
//dynamic tab add/remove
var tabTemplate = "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close' style=\"float:left;\" role='presentation'>Remove Tab</span></li>",
tabCounter = 1;
//jquery-ui
var divOneTabs = $("#divOneTabs").tabs({ //same as: $(".selector").tabs("option", "active", 1);
active: 0
});
$('.tabs').css('height','auto'); //extend height of tab content... not working as of now...
function divOneAddTab(t,c) {
var label = t,
id = t + "-" + tabCounter,
li = $(tabTemplate.replace(/#\{href\}/g, "#" + id).replace(/#\{label\}/g, label)),
tabContentHtml = c;
divOneTabs.find(".divOneTabs").append(li);
divOneTabs.append("<div id='" + id + "'><p>" + tabContentHtml + "</p></div>");
//below fixes the tab height issue in jquery-ui
//divOneTabs.append('<div id="' + id + '"' + ' class="tabdiv" ' + '><p>' + tabContentHtml + '</p></div>');
divOneTabs.tabs("refresh");
tabCounter++;
}
// close icon: removing the tab on click
divOneTabs.delegate("span.ui-icon-close", "click", function() {
var panelId = $(this).closest("li").remove().attr("aria-controls");
$("#" + panelId).remove();
divOneTabs.tabs("refresh");
});
divOneTabs.bind("keyup", function(event) {
if (event.altKey && event.keyCode === $.ui.keyCode.BACKSPACE) {
var panelId = divOneTabs.find(".ui-tabs-active").remove().attr("aria-controls");
$("#" + panelId).remove();
divOneTabs.tabs("refresh");
}
});
//end jquer-ui settings
...每个页面上的一些功能将调用其独特divOneAddTab常规,这将然后加李其独特的类别(名称相同)。
所以,这段代码repeates为divOne,divTwo .....
HTML:
<div id="divOneTabs">
<ul class="divOneTabs">
<li><a href="#divOneTabsDef">Default</a><span class="ui-icon ui-icon-close" style="float: left;" role="presentation">Remove Tab</span></li>
</ul>
<div id="divOneTabsDef">
<pre>Sample Output.</pre>
</div>
谢谢FO rthe细节。我还没有尝试,但我相信它会起作用。 – rajeev