设置页面上存在的工具提示和稍后加载的工具提示

时间:2012-12-01 16:40:32

标签: javascript jquery events coffeescript

我有以下CoffeeScript:

$ ->
  $("[rel='tooltip']").tooltip
    html: false
    delay: { show: 500, hide: 100 }
    placement: 'bottom'

这会在页面加载时设置Twitter Bootstrap tooltips。我的问题是我将AJAX链接加载到选项卡中,我需要在加载AJAX的内容中设置工具提示。我认为解决方案是使用on,但我无法弄清楚要调用它的元素以及要使用的事件。我试过了:

$(document).on 'ready', "[rel='tooltip']", ->
  console.log 'setting up tooltips'

但是控制台消息从未出现过,所以这似乎不起作用。

我想要一段代码来设置加载时页面上的任何工具提示,以及将来出现的任何工具提示。

编辑: charlietfl's answer做到了!在$ ->回调之外,我放置了:

$(document).tooltip
  selector: "[rel='tooltip']"
  html: false
  delay: { show: 500, hide: 100 }
  placement: 'bottom'

现在我已经在页面中设置了工具提示,并且设置了加载AJAX的标签中出现的新工具提示。

2 个答案:

答案 0 :(得分:2)

Bootstrap已经内置了委托方法。使用selector选项委派代码运行时不存在的未来元素:

$(document).tooltip({
     selector: "[rel='tooltip']"
      /* other options*/
})

参考:http://twitter.github.com/bootstrap/javascript.html#tooltips

答案 1 :(得分:0)

您可以设置全局ajax事件处理程序,例如ajaxSuccess()

$(document).ajaxSuccess(function() {
    $("[rel='tooltip']").tooltip({ //... etc

每次新的ajax调用成功时,这将运行回调并附加工具提示。