通过数组对象定义的多个工具提示内容源

时间:2013-07-22 20:46:22

标签: jquery jquery-ui jquery-ui-tooltip

我正在使用jQuery UI在页面上提供多个工具提示,以获取不同属性的内容。

正在创建一个对象,定义哪个将成为每个工具提示的来源,具体取决于它的类。

类似的东西:

var tooltipparam = [{"class":".one","source":"alt"}, {"class":".two","source":"title"},{"class":".three","source":"alt"}];

然后我正在做一个循环来创建工具提示,如下所示:

for (var key in tooltipparam) {

    var source = tooltipparam[key]['source'];
    $(tooltipparam[key]['class']).tooltip({
            content: function () { return $(this).attr(source) }
        });
}

但是,正在使用参数对象的最新设置创建工具。在这种情况下,获取alt属性({“class”:“。three”,“source”:“alt”}并创建所有这样的工具提示。

我缺少什么?

这是一个jsfiddle:

http://jsfiddle.net/cmoreira/vqRH5/

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的var source是一个全局变量。当调用工具提示内容函数时,也就是说当您的鼠标输入<a/>元素时,source变量的值是最后一个设置为'alt'。

我不知道您的要求,但如果您想从不同的属性中检索工具提示内容,您可以这样继续:

<强> HTML

<div class="tooltip" title="tooltip from title" />
<img class="tooltip" alt="tooltip from alt" src="..."/>

<强> JS

$(".tooltip").tooltip({
    content: function () {
        var _this = jQuery(this);
        return _this.attr('title') != '' ? 
            _this.attr('title') : _this.attr('alt');
    }
});