为具有相同名称的所有元素创建具有不同内容的JQuery popover

时间:2013-01-01 18:28:20

标签: jquery html

我想让JQuery popover的内容依赖于元素的值。弹出窗口已创建,但没有内容。这就是我正在尝试的(它不会为内容生成任何内容) JQuery的:

 $("[name=teacher]").popover({
    title: 'Teacher',
    content: $(this).attr('value'),
    trigger: "hover"
  });

HTML:

<div name="teacher" value="foo1">Bar1</div>
<div name="teacher" value="foo2">Bar2</div>

2 个答案:

答案 0 :(得分:3)

首先,value和name不是div元素的有效属性。您应该使用数据属性和类名:

<div class="teacher" data-value="foo1">Bar1</div>

您可以像这样访问数据属性:

$(this).data('value');

关于popover的东西。 $(this)用于popover,而不是您单击的当前元素,这就是内容为空的原因。您需要先手动触发悬停功能,然后显示弹出窗口:

$(".teacher").hover(function () {
    $(this).popover({
        content: $(this).data('value')
    }).popover('show');
}, function () {
    $(this).popover('hide');
});

演示:http://jsfiddle.net/LjmrG/

答案 1 :(得分:0)

尝试使用val()函数......就像这样......

$(this).val();

可能有用......