在标签

时间:2015-05-06 06:21:22

标签: javascript jsp tabs

我正在尝试打开jsp页面,因为选项卡(标签内容是jsp页面)已被点击,但它会在新窗口中导航到该页面,标签会消失。

这是我js的{​​{1}}

tabs

$(document).ready(function(){ $(".tabbable").find(".tab").hide(); $(".tabbable").find(".tab").first().show(); $(".tabbable").find(".tabs li").first().find("a").addClass("active"); $(".tabbable").find(".tabs").find("a").click(function(){ tab = $(this).attr("href"); $(".tabbable").find(".tab").hide(); $(".tabbable").find(".tabs").find("a").removeClass("active"); $(tab).show(); $(this).addClass("active"); return false; }); });

jsp

我是<body> <div class="tabbable"> <ul class="tabs"> <li><a href="pages/first.jsp">first</a></li> <li><a href="pages/second.jsp">second</a></li> <li><a href="pages/third.jsp">third</a></li> </ul> <div id="first" class="tab"> contents of this tab. </div> </div> </body> 的新手,我错在哪里?

注意:JSFiddle根据一些建议。

1 个答案:

答案 0 :(得分:0)

根据你的帖子,我假设你正在使用jQuery。我的答案基于这个假设,所以如果我错了,请忽略这篇文章。

我还假设你打算在div中显示id为'first'的每个标签的内容。

首先,我不明白为什么您发布的代码会在新窗口中打开选项卡内容,因为在事件处理程序中返回false会阻止发生默认行为(在锚元素中,此默认行为正在打开引用这可能是我在这里遗失了。

根据您的帖子,您无法在任何地方获取任何这些页面的内容。我在代码中添加了一些额外的行,以便这样做:

$(document).ready(function(){
         $(".tabbable").find(".tab").hide();
            $(".tabbable").find(".tab").first().show();
            $(".tabbable").find(".tabs li").first().find("a").addClass("active");
            $(".tabbable").find(".tabs").find("a").click(function(){
                    tab = $(this).attr("href");
                    $(".tabbable").find(".tab").hide();
                    $(".tabbable").find(".tabs").find("a").removeClass("active");
                    //$(tab).show(); -> This line does nothing, as no element matches the given selector
                    // Get html content making a GET request
                    // see: https://api.jquery.com/jquery.get/
                    $.get( tab, function( data ) {
                        // Add the html content to the container
                        $( "#first" ).html( data );
                    });
                    $(this).addClass("active");
                    return false;
                });
        });

基本上,这几行正在做的是:1)向服务器发出请求以获取所需内容; 2)将该内容粘贴到id为'first'的div中。

再一次,如果那不是你打算做的,你可以放弃这个答案。如果我的代码有任何问题,或者您对我的解决方案有任何疑问,请随时发布问题。

相关问题