禁用文本框上的工具提示

时间:2014-01-19 18:19:21

标签: jquery twitter-bootstrap-3 twitter-bootstrap-tooltip

根据TwitterBootstrap文档,我引用:

  

要向已禁用或.disabled元素添加工具提示,请将该元素放在<div>内,然后将工具提示应用于<div>

Click here for the docs

我已经这样做了:

    function AddToolTip(control) {
        d = jQuery(control).wrap("<div class='" + control.attr('name') + "' 
title='" + control.attr("data-title") + "' />");
        d.tooltip();
     }

这个函数被调用如下:

$('#Area').attr('disabled', true).after(AddToolTip($('#Area')));

但工具提示未显示,应在hoveredclicked时显示。

我有textbox我启用/禁用,具体取决于另一个控件。无论textbox是启用还是禁用,都会显示相同的工具提示。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

从函数中返回元素:

    function AddToolTip(control) {
        d = jQuery(control).wrap("<div class='" + control.attr('name') + "' 
title='" + control.attr("data-title") + "' />");
        d.tooltip();
        return d;
     }

如果没有从函数返回元素,则在此行中#Area之后无法附加任何内容:

$('#Area').attr('disabled', true).after(AddToolTip($('#Area')));

导致div无法添加到DOM

答案 1 :(得分:0)

我最终解决了这个问题:

$('#Test').attr('disabled', true).wrap(function () {
   return "<div class='" + $(this).attr('name') + "'></div>";
});

以下是AddToolTip()功能:

function AddToolTip(className) {
        d = $('.' + className);
        i = $('.' + className + ' :input');
        d.css({
            height: i.outerHeight(),
            width: i.outerWidth(),
            position: "top",
        })
        d.css(i.offset());
        d.attr("title", i.attr("data-title"));
        d.tooltip();
    }

希望它可以帮助他人。