关于动态元素的jquery工具提示

时间:2010-07-20 17:28:56

标签: ajax dynamic tooltip

我使用此tooltip插件将元素上的工具提示设为

$('.showtooltip').tooltip({
            delay: 0,
            track: true,
            showURL: false,
            bodyHandler: function() {
                var tipStr = "SOME DISPLAY HTML";
                return $(tipStr);
            }
        });

我的ajax动态创建元素。

$("<img alt='' class='showtooltip' src='image.jpg' />");

所以当这个图像被添加到文档时。工具提示不显示。 然后我在jquery中使用live():

$(".showtooltip").live("mouseover", function() {
                $(this).tooltip({
                    delay: 0,
                    track: true,
                    showURL: false,
                    bodyHandler: function() {
                        var tipStr = "SOME DISPLAY HTML";
                        return $(tipStr);
                    }
                })
            });

但工具提示仅在第一次鼠标悬停在图像上后显示。 如何在动态元素上使用工具提示?

2 个答案:

答案 0 :(得分:0)

我在ajax调用后使用这样的东西重新绑定。这可能有所帮助。

$(".showtooltip").live("mouseover",function(){
   if (!$(this).hasClass("tooledUp")){
      $(this).tooltip({
                delay: 0,
                track: true,
                showURL: false,
                bodyHandler: function() {
                    var tipStr = "SOME DISPLAY HTML";
                    return $(tipStr);
                }
      });
      $(this).tooltip().show();
      $(this).addClass("tooledUp");
   }
});

来自论坛:http://static.flowplayer.org/tools/forum/30/37281

答案 1 :(得分:0)

<input type="button" id="btn" value ="Click here" />

$(document).ready(function(){
$("#btn").click(function(){

    $("<input type='checkbox' title='waaaaw' />").appendTo($(this).parent()).ready(function(){
        $(this).tooltip({
                delay: 0,
                track: true,
                showURL: false,
                bodyHandler: function() {
                    var tipStr = "SOME DISPLAY HTML";
                    return $(tipStr);
                }
          }).addClass("tooledUp").show();
    });
});
});