【发布时间】:2014-10-09 04:05:03
【问题描述】:
使用 ASP.NET + BootStrap 3 并尝试创建选项卡。一切正常,除了我希望在当前活动选项卡周围出现精细边框。为此,我需要在该li 上应用active 类(并从其他li 元素中删除active)。我正在尝试通过以下简单的 JS 函数来实现这一点。但是当我单击选项卡标题时,它告诉我函数 activateTab() 未定义。有什么线索吗?
<EditItemTemplate>
<script type="text/javascript">
function activateTab(tab) {
$("#ItemTabs ul li").removeClass("active");
$(tab).addClass("active");
}
</script>
<div id="ItemTabs">
<ul class="nav nav-tabs">
<li><a href="#tab-Details" onclick="activateTab(this.parentElement);">Details</a></li>
<li><a href="#tab-AdditionalInfo" onclick="activateTab(this.parentElement);">Additional Info</a></li>
...
</ul>
</div>
</EditItemTemplate>
N.B:我不是经验丰富的网络开发人员,可能正在重新发明轮子。如果有更简单的方法,请告诉我。
【问题讨论】:
-
将您的脚本移到头部。不需要放在div附近。
-
@Satpal:我把它放在那里只是为了便于阅读。它会以某种方式导致这个问题吗?
-
@Satpal:这确实成功了。仍然希望看到为什么它在靠近
div时不起作用的解释。 -
无法回答您的问题,为什么放置会产生如此大的差异,但以下代码也可以工作,无论放置在何处:activateTab = function(tab) { $("#ItemTabs ul li") .removeClass("活动");控制台.log(标签); $(tab).addClass("活动"); }
-
这是关键:
<EditItemTemplate>。模板里面的东西,就这样,永远不会被浏览器写出来。相反,该模板被读取、转换和填写,然后写入浏览器。
标签: javascript jquery css asp.net twitter-bootstrap