从popover读取数据属性

时间:2016-06-14 16:07:44

标签: jquery twitter-bootstrap

我需要读取一个来自bootstrap popver的数据值。

详细说明:

有一个与面板关联的弹出窗口。 进入popover有一个链接触发(通过onClick)一个函数,该函数必须读取包含在面板div中的属性data-info的值。

HTML code:

<div class="panel panel-success redim" data-info="informations" data-content="&lt;div onClick=&quot;modifica_appuntamento()&quot; class=&quot;text-center&quot;&gt;&lt;a href=&quot;#&quot;&gt;Get info&lt;/a&gt;&lt;/div&gt;" data-original-title="Get data from popover">
      <div class="panel-heading">Heading</div>
      <div class="panel-body">Body</div>
</div>

Jquery的:

$(function() {
popoverOptions = {
html: true,
animation: true
};
$('.panel').popover(popoverOptions);
});

function modifica_appuntamento() {
  alert($(this).parent().data('info'));
}

的jsfiddle: https://jsfiddle.net/fabioravizzotti/3h4vu8Ly/

你能帮我找一个解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

第一个问题

您的元素选择器错误,因为在这种情况下.parent()实际上是主.popover div,而您尝试从data-info获取的元素是{{1} }。所以你应该使用:

.prev()

第二个问题

您无法在功能中使用$(this).closest('.popover').prev().data('info'); 。使用内联$(this)属性,您应该将元素传递给函数:

onclick

然后:

onClick='modifica_appuntamento(this);'

旁注。
It's not a good practice to use javascript attributes
我建议您在弹出链接中添加function modifica_appuntamento(elem) { $(elem).... } 并使用jQuery委托click事件:

class="data-info"

JSFiddle Demo