如何将Twitter Bootstrap工具提示绑定到动态创建的元素?
我正在使用像以下JavaScript的Twitter引导工具提示:
$('a[rel=tooltip]').tooltip();
我的标记看起来像这样:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
这工作正常,但我动态地添加<a>
元素和工具提示不显示这些动态元素。 我知道这是因为我只绑定.tooltip()一次,当文档完成加载典型的jquery $(document).ready(function()
功能。
我如何将它绑定到动态创建的元素? 通常我会通过jquery live()方法来做到这一点。 但是,我用来绑定的事件是什么? 我只是不确定如何使用jquery .live()来连接bootstrap .tooltip()。
我发现了一种使这项工作如此的方法:
/* Add new 'rows' when plus sign is clicked */
$("a.add").live('click', function () {
var clicked_li = $(this).parent('li');
var clone = clicked_li.clone();
clone.find(':input').each(function() {
$(this).val('');
});
clicked_li.after(clone);
$('a[rel=tooltip]').tooltip();
});
这工作,但似乎有点hackish。 我也在$(ready)调用中调用完全相同的.tooltip()行。 那么,当页面首次加载并匹配该选择器时,存在的元素最终会以两次工具提示结束吗?
我没有看到这种方法的任何问题。 我只是在寻找最佳做法或对行为的理解。
试试这个:
$('body').tooltip({
selector: '[rel=tooltip]'
});
如果您有多个要初始化的工具提示配置,则适用于我。
$("body").tooltip({
selector: '[data-toggle="tooltip"]'
});
然后,您可以使用data
属性在各个元素上设置属性。
对我来说,只有抓住mouseenter事件是有点bug,并且工具提示没有正确显示/隐藏。 我不得不写这个,现在它完美地工作:
$(document).on('mouseenter','[rel=tooltip]', function(){
$(this).tooltip('show');
});
$(document).on('mouseleave','[rel=tooltip]', function(){
$(this).tooltip('hide');
});
链接地址: http://www.djcxy.com/p/42493.html
上一篇: How do I bind Twitter Bootstrap tooltips to dynamically created elements?
下一篇: How may I reference the script tag that loaded the currently