我正在尝试打开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根据一些建议。
答案 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中。
再一次,如果那不是你打算做的,你可以放弃这个答案。如果我的代码有任何问题,或者您对我的解决方案有任何疑问,请随时发布问题。