jquery - Bootstrap 工具提示不起作用

标签 jquery css asp.net-mvc twitter-bootstrap

我有一个 ASP.NET MVC 4 元素,其中包含三个按钮,工具提示嵌入在名为“A”的 div 中:

<div class="A">
    <span></span>
    <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdfsdf" id="aButton">A</button>
    <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdljkfl" id="bButton">B</button>
    <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdljkfl" id="cButton">C</button>
</div>

在 document.ready 上,我调用这个 jQuery 函数:

$(document).ready(function () {
    $('.A .btn').tooltip();
});

不显示任何工具提示。我检查我的 BundleConfig 以确保包含 bootstrap.js:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.11.1.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/bootstrap-3.2.0-dist/js/bootstrap.js"));

是的,它就在那里。当我将光标悬停在按钮上时,为什么我的工具提示没有显示?

编辑:控制台现在产生以下错误:TypeError: $(...).tooltip is not a function。此外,document.ready 函数位于我的 View 的最底部。 View 或其布局中的任何位置都没有其他 document.ready 函数。该包在我的 View 的顶部被调用,如下所示:

@Scripts.Render("~/bundles/modernizr", "~/bundles/jquery", "~/bundles/flot")

最佳答案

简单地说,您尝试做的事情是有效的。为了证明这一点,请尝试以下操作:

设置您的 _Layout.cshtml:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    <link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
</head>
<body>

    <div class="container">
        @RenderBody()
    </div>

    <!--
        Note: Register script bundles here...
        Just for the sake of getting it to work, I'm using CDN here
    -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>

    <!-- Important: load page-specific scripts *after* the includes above -->
    @RenderSection("Footer", required: false)
</body>
</html>

然后,在 View (Home.cshtml) 中:

@{
    ViewBag.Title = "Home";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="container">
    <div class="A">
        <span></span>
        <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdfsdf" id="aButton">A</button>
        <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdljkfl" id="bButton">B</button>
        <button type="button" class="btn" data-toggle="tooltip" data-original-title="Default tooltip" title="sdljkfl" id="cButton">C</button>
    </div>
</div>

@section Footer {
    <script>
        $(document).ready(function () {
            $('.A .btn').tooltip();
        });
    </script>
}

这是复制/粘贴就绪的,可以使用。但是这里有一些事情需要考虑:

  • 加载脚本后加载$(document).ready...;您会看到我在示例中提供的自定义部分“页脚”
  • 首先尝试使用 CDN 对其进行调试,看看是否可以正常运行;然后你可以专注于 BundleConfig
  • 最后一个提示是确保有足够的“视觉空间”来显示工具提示(在您的例子中是在按钮上方)

关于jquery - Bootstrap 工具提示不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25021265/

相关文章:

javascript - 不同时间反算输出,显示后不做任何改变

html - 闪光总是在上面?用 css 修复?

javascript - 没有脚本标签的问题

javascript - 网页图像效果 - JavaScript?能怎样?

jquery - 将鼠标悬停在 <a> 标签上时子菜单不会停留

asp.net-mvc - ASP.NET MVC : Use Html.部分还是Html.Action?

c# - ASP.NET MVC - 跨子域身份验证/成员资格

javascript - 如何移动背景图像图案?

javascript - 如何给图像一个最大高度但保持纵横比?

AJAX 回调后的 jQuery .done