jquery - KnockoutJS 模板和 Twitter Bootstrap/JQuery 工具提示不起作用

标签 jquery knockout.js twitter-bootstrap templating

我有一个在 onload 中加载 Twitter Bootstrap 工具提示和弹出窗口的代码片段,如下所示:

$('i[rel=tooltip]').tooltip({
    placement: "left"
});

这适用于静态 HTML,直到我添加 KnockoutJS 模板(为简洁起见,省略了一些代码):

<div class="row-fluid" data-bind="foreach: events.slice(paginationStart, paginationStop())">
    ...
    <li>
        <i class="icon-calendar" rel="tooltip" data-original-title="Date"></i> <span data-bind="text: start">event.date</span>
    </li>
    ...
</div>

然后工具提示根本不会显示。我尝试过匿名和普通 KnockoutJS 模板

我想我明白发生了什么:KnockoutJS 模板正在覆盖 Twitter Bootstrap 初始化,因为模板是在导入 Twitter Bootstrap JS 文件后加载运行的。但我不知道该怎么办。我确实尝试将 JQuery 内容放在 ko.applyBindings 之后,但这也不起作用。

最佳答案

写完这个问题后我很快就想通了,不敢相信我错过了。答案是在 KnockoutJS 模板的 afterRender 回调中执行 Twitter Bootstrap Javascript 插件/JQuery 操作。

示例:将属性更改为 data-bind="template: { foreach: data, afterRender: bootstrapDecorate }" 并使 bootstrapDecorate 成为您运行任何初始化设置的 knockout 模型中的可调用函数你之前在 body.onload 函数中有过。

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

相关文章:

javascript - 无容器控制流语法的 knockout 错误

php - Bootstrap 表单没有将值传递给 php

javascript - Bootstrap 模态关闭事件

html - Bootstrap 多个内联下拉菜单和按钮

javascript - jQuery .append 不适用于 .submit

javascript - 如何仅使用 ES6 从 npm 包导入 jQuery?

jquery - 按 F5 不会触发 mouseup 事件

javascript - 如何从动态 html 结果执行 javascript 函数? jQuery

javascript - 获取具有 KnockoutJs 提交绑定(bind)的对象

jquery - Knockoutjs 动态模板并将 jquery 效果应用于可见性过渡