我有三个标签,每个标签都有特定的过滤器内容。当我单击每个选项卡时,特定的过滤器将加载到#filterContent div中。
问题是,我希望每个过滤器只加载一次并显示每个选项卡的良好过滤器。
我正在使用YUI tabview:http://developer.yahoo.com/yui/tabview/。
var tab0 = tabView.getTab(0);
var tab1 = tabView.getTab(1);
var tab2 = tabView.getTab(2);
tab0.addListener("click", onClickTabToPick);
tab1.addListener("click", onClickTabToSend);
tab2.addListener("click", onClickTabFinished);
var onClickTabToPick = function (e) {
$.get("/OrderManager/ToPickFilter", function (data) {
$("#filterContent").html(data);
});
};
var onClickTabToSend = function (e) {
$.get("/OrderManager/ToSendFilter", function (data) {
$("#filterContent").html(data);
});
};
var onClickTabFinished = function (e) {
$.get("/OrderManager/FinishedFilter", function (data) {
$("#filterContent").html(data);
});
};
我如何才能实现这一目标。提前谢谢。
答案 0 :(得分:1)
只需在不同的容器中加载数据(filterContent1,filterContent2,filterContent3)。您可以使用空innerHTML创建这些容器。在请求之前,您可以检查$('#filterContent1')。html()。如果它是空的,则发出请求,否则只显示它。
此外,您仍然可以使用一个容器,但是您需要在某个对象中存储来自服务器的响应:
var responses = { tab1: null, tab2: null, tab3: null };
var onClickTabToPick = function (e) {
if ( responses.tab1 == null )
{
$.get("/OrderManager/ToPickFilter", function ( data ) {
responses.tab1 = data;
});
}
$("#filterContent").html( responses.tab1 );
};
对于其他标签,例如第一个。