javascript – 从Popover访问表行

我目前有一个按钮的引导弹出窗口.仅当鼠标位于表的tr上时,弹出窗口才会显示.

我想要做的是能够访问该行的元素,这是可能的.

弹出代码:

$('.popup').popover(
    {
      placement: 'top',
      trigger: 'manual',
      delay: { show: 350, hide: 100 },
      html: true,
      content: $('#shortcuts').html(),
      title: "Quick Tasks"
    }
  ).parent().delegate('#quickDeleteBtn', 'click', function() {
      alert($(this).closest('tr').children('td').text()); // ???
});
    var timer,
        popover_parent;
    function hidePopover(elem) {
        $(elem).popover('hide');
    }
    $('.popup').hover(
        function() {
          var self = this;
          clearTimeout(timer);
          $('.popover').hide(); //Hide any open popovers on other elements.
          popover_parent = self
          //$('.popup').attr("data-content","WOOHOOOO!");
          $(self).popover('show');            
        }, 
        function() {
          var self = this;
          timer = setTimeout(function(){hidePopover(self)},250);                 
    });
    $(document).on({
      mouseenter: function() {
        clearTimeout(timer);
      },
      mouseleave: function() {
        var self = this;
        timer = setTimeout(function(){hidePopover(popover_parent)},250); 
      }
    }, '.popover');

HTML:

<div class="hide" id="shortcuts">
    <a href="javascript:void(0);" id="quickDeleteBtn" class="btn btn-danger">Delete</a>
    </div>

在行上实现popover的javascript:

rows += '<tr class="popup datarow" rel="popover">';

有谁知道我在这里做错了什么以及我应该如何访问我正在盘旋的tr的子元素?

JSFiddle:http://jsfiddle.net/C5BjY/8/

解决方法:

由于某种原因,我无法得到最接近()的工作.使用parent().parent()来获取包含.popover分隔符,然后使用prev()来获取前一个tr元素似乎可以解决问题.

只是改变:

alert($(this).closest('tr').children('td').text());

至:

alert($(this).parent().parent().prev('tr').children('td').text());

JSFiddle example.

作为旁注,当您的小提琴使用jQuery 1.10.1时,您应该将delegate()更改为on()

on('click', '#quickDeleteBtn', function(index) { ... });
上一篇:Python equivalent of D3.js


下一篇:华大MCU端口使用时的竞争-冒险现象