微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何使用jQuery UI Tooltip在打开时更改工具提示颜色?

我正在努力实现以下目标,但无法弄清楚如何.我在页面上有几个工具提示,但我希望每个工具提示看起来不同(例如,根据严重程度).这是我到目前为止:
<div id="container">
<a href="#" title="Tooltip 1" data-severity="warning">Tooltip 1 (Warning)</a>
<a href="#" title="Tooltip 2" data-severity="danger">Tooltip 2 (Danger)</a>
</div>

<script type="text/javascript">
// init tooltip
ArrowToolTip.init('container');
</script>

/*JAVASCRIPT*/
var ArrowToolTip = {
init: function (parentId) {
    jQuery('#' + parentId).tooltip(
    {
        content: function () {
            var element = jQuery(this);
            return element.attr('title');
        },create: function () {
            var element = jQuery(this);

            var severity = element.data('severity');

            if (!severity) {
                severity = 'default';
            }

            element.tooltip('option','tooltipClass',severity);
        },open: function(event,ui) {
            var element = jQuery(this);
            var severity = element.data('severity');
            ui.tooltip({
                tooltipClass: severity 
            });
            //ui.tooltip.tooltipClass(severity);
            console.log(event);
            console.log(ui);
        }
    });
}
}

无论我在创建中有什么:有效,但它只在页面加载时调用,所以这对我没有任何好处.所以现在我想把它移到open:event.但这似乎根本不起作用. jQuery(this)不返回悬停元素,它返回容器.如何获取正确的元素来选择数据属性?那我怎么能改变CSS类呢?有谁知道如何实现这一目标?

解决方法

我没有很好地理解你的逻辑,但这是我如何根据数据严重性实现不同的类.而不是将.tooltip()应用于所有元素,迭代它们并将tooltipClass设置为$(this).data(‘severity’).内容函数也允许添加类.
$('a.tips').each(function () {
    var severity = $(this).data('severity');
    $(this).tooltip({
        content: function () {
            return '<em>' + $(this).attr('title') + '</em>';
        },tooltipClass: severity,show: "slideDown",open: function (event,ui) {
            ui.tooltip.hover(function () {
                $(this).fadeto("slow",0.5);
            });
        }
    });
});
.ui-tooltip {
    padding: 10px 20px;
    border-radius: 20px;
    font: bold 14px"Helvetica Neue",Sans-Serif;
    text-transform: uppercase;
    Box-shadow: 0 0 7px black;
}
.ui-tooltip.warning {
    color: #E3E8F7;
    background: #D94AA4;
}
.ui-tooltip.danger {
    color: #212942;
    background: #CABA75;
}
a.tips { float:left; margin: 0 10px; text-decoration:none; font: Sans-Serif; }
body { background-color:#eee; padding: 30px; }
<link href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/css/jquery.ui.tooltip.min.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>

<div id="container">
<a href="#" title="Tooltip 1" class="tips" data-severity="warning">(Warning)</a>
<a href="#" title="Tooltip 2" class="tips" data-severity="danger">(Danger)</a>
</div>

原文地址:https://www.jb51.cc/jquery/158898.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐