【问题标题】:JS function not visible in onclick eventJS函数在onclick事件中不可见
【发布时间】: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("活动"); }
  • 这是关键:&lt;EditItemTemplate&gt;。模板里面的东西,就这样,永远不会被浏览器写出来。相反,该模板被读取、转换和填写,然后写入浏览器。

标签: javascript jquery css asp.net twitter-bootstrap


【解决方案1】:

当 javascript 文件出现一些编译错误时,就会出现此类问题。 你可以试试这个:

from $("#ItemTabs ul li").removeClass("active") TO this 
      $('div#ItemTabs > ul li').removeClass('active')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 2015-04-17
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多