jquery - 在多个表行中重复使用下拉菜单

标签 jquery html css twitter-bootstrap asp.net-mvc-4

我有一个交易表,我想在每一行添加一个小按钮。单击时,应出现一个带有两个菜单项的小下拉菜单,如下所示:

<ul id="contextMenu" class="dropdown-menu" role="menu" style="display:none" >
    <li><a tabindex="-1" href="#">Pay</a></li>
    <li><a tabindex="-1" href="#">Delete</a></li>
</ul>

但是,我的表格可能有零行到数百行,因此重复代码,加上必须创建下拉列表的按钮,将会增加大量页面大小。

有没有办法让该代码一次,并且以某种方式通过单击按钮,使用每一行中的相同代码?此外,我需要根据每行的 ID 更改该行的 href 值。所以 href 实际上会是这样的:

\transaction\pay?id=10

每行的 ID 都会发生变化。

最佳答案

向您的行添加一个按钮,如下所示:

<td class="dropdown">
    <a class="btn btn-default actionButton" data-toggle="dropdown" href="#">
        Action
    </a>
</td>

下拉菜单仅在位于打开它的data-toggle之后时才会自动定位。为了避免编写大量定位代码,您可以在打开下拉菜单之前移动它:

//save the selector so you don't have to do the lookup everytime
$dropdown = $("#contextMenu");

$(".actionButton").click(function() {
    //get row ID
    var id = $(this).closest("tr").children().first().html();

    //move dropdown menu
    $(this).after($dropdown);

    //update links
    $dropdown.find(".payLink").attr("href", "/transaction/pay?id="+id);
    $dropdown.find(".delLink").attr("href", "/transaction/delete?id="+id);

    //show dropdown
    $(this).dropdown();
});

Demo in jsFiddle

关于jquery - 在多个表行中重复使用下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24974679/

相关文章:

JavaScript - 在 RegEx 中用 "\"替换 "/"字符的正确方法是什么

javascript - JQuery 在 foreach 循环中选择一个元素

javascript - 错误 : Could not find module jquery (Emberjs)

css - WordPress Avada 主题 : Gap between drop-down elements and main nav

html - css布局布局bug

jquery - 使用 jQuery 在浏览器中打开非事件选项卡

javascript - Chrome 应用程序在全屏中创建新窗口 - html 元素不是全高

html - CSS 和多个 div 的定位

html - 如何随着列表的增长扩展列表的高度?

javascript - 按多个匹配值过滤数组