使div显示与锚标记平行 - onclick

时间:2013-07-05 07:18:29

标签: jquery html css html5 html-table

我有一个包含一个动作列的表,每列都有一个锚标记。我希望在每次锚定点击时填充并显示相同的div

我能够做到这一点,但是我希望div显示为与点击显示的锚标签平行。

问题:我创造了一切并且工作正常,但我无法定位它。目前它出现在顶部,当我点击页面底部最后一行的锚标记时,div再次出现在顶部,但我希望它显示在与最底部锚点平行的那里。

这是描述样本的jsFiddle。 http://jsfiddle.net/8bLHF/

<div id="myDiv"><p>Hello</p></div>
<table border="1" cellpadding="10">
 <tr>
   <th>Action</th>
 </tr>
 <tr>
   <td><a id="anchor" href="#">1</a></td>
 </tr>
 <tr>
   <td><a id="anchor" href="#">2</a></td>
 </tr>
 <tr>
   <td><a id="anchor" href="#">3</a></td>
 </tr>
 <tr>
   <td><a id="anchor" href="#">4</a></td>
 </tr>
 <tr>
   <td><a id="anchor" href="#">5</a></td>
 </tr>
</table>

请帮忙

3 个答案:

答案 0 :(得分:4)

这是FIDDLE

首先让你的id="anchor"成为一个班级class="anchor

$(document).on('click', '.anchor', function (e) {
    var mousex = e.pageX + 20; //Get X coordinates
    var mousey = e.pageY + 10; //Get Y coordinates
    $('#myDiv')
        .css({
        top: mousey,
        left: mousex
    });
    $("#myDiv").fadeIn();
});

$(document).on('click', '#myDiv', function () {
    $("#myDiv").fadeOut();
});

答案 1 :(得分:3)

将您点击的内容更改为以下内容。

$(document).on('click', '#anchor', function(e){
   $("#myDiv").offset({left:e.pageX,top:e.pageY});
   $("#myDiv").fadeIn();
});

这会将div位置更改为鼠标单击。您可以稍微改变一下以获得您想要的结果,但这可能会让您有所了解。

答案 2 :(得分:0)

以下是DEMO http://jsfiddle.net/yeyene/8bLHF/5/

首先将锚点ID更改为类。

$(document).on('click', '.anchor', function(){
    var p = $(this).parent('td');
    var position = p.position();
    $("#myDiv").css({
        'left':$('#myTable').width()+10 +'px', 
        'top':position.top+'px'
    });
    $("#myDiv").fadeIn();
});

$(document).on('click', '#myDiv', function(){
     $("#myDiv").fadeOut(); 
});