从Bootstrap popover访问div id

问题描述 投票:0回答:1

我已经设置了一堆div,在悬停时打开一个popover。单击时,这些按钮打开一个引导模式,其内容取决于启动div的ID。到目前为止一切都很好。

但是现在我想让popover本身可以点击并且能够启动模态。没关系但我无法显示模态内容,因为我的jQuery脚本无法访问启动的div id。

有什么建议 ?谢谢 !

发射div:

<a class="dev_grid-cell">
<div id="crl0_trl2" class="wrapper" data-container="body" data-toggle="popover" data-placement="top" data-content="Content of the popover">
</div>
</a>

javascript

jQuery(document).on("click", ".popover", function (){
  $("#MMmodal").modal("show");
  $("[data-toggle=popover]").popover("hide");
});

// So far, it's ok: the modal launches.

jQuery(document).on("click", ".popover", function (){
  var divID = this.id; // —> Here is the problem
  var fields = divID.split("_");
  var crl = "#"+fields[0];
  var trl = "#"+fields[1];
  $("#crl").children().hide();
  $("#trl").children().hide();
  $(trl).css("display","block");
  $(crl).css("display","block");
  alert(divID); // —> returns "Undefined" or something like "popover457812"
});
jquery twitter-bootstrap popover
1个回答
1
投票

尝试这样的事情。你是对的,使用$(this)将引用该文档。但是eventObj.target引用了实际的clicked元素。

jQuery(document).on("click", ".popover", function (eventObj){
  var divID = eventObj.target.id; // —> This may fix the problem
  var fields = divID.split("_");
  var crl = "#"+fields[0];
  var trl = "#"+fields[1];
  $("#crl").children().hide();
  $("#trl").children().hide();
  $(trl).css("display","block");
  $(crl).css("display","block");
  alert(divID);
});
© www.soinside.com 2019 - 2024. All rights reserved.