【问题标题】:How to trigger the click event of a Bootgrid command button如何触发 Bootgrid 命令按钮的点击事件
【发布时间】:2016-04-14 13:25:21
【问题描述】:

我正在使用带有命令按钮的 Bootgrid,如果网格中只有一行(我可以确定 php 中的数据是否只有一行),那么我想触发命令按钮单击事件。命令按钮有一个名为“命令视图”的类。我尝试了以下方法:

$(".command-view").click();

$("#grid .command-view").click();

【问题讨论】:

  • 如果我理解正确,您的命令按钮已经有了点击处理程序,但您想在只有一行时触发它。如果是这样,为什么不直接调用您在现有点击处理程序中调用的相同方法,而不是尝试自己触发点击?

标签: jquery-bootgrid


【解决方案1】:

更传统的方法是使用内置的 BootGrid 点击处理程序(本质上是基于行的,如下所示),然后处理之后的点击。

这是 BootGrid 期望您的工作方式,也意味着您不需要在每一行上放置单独的事件处理程序。

  .on('click.rs.jquery.bootgrid', function (e, cols, row, target) {
     if (typeof row != "undefined")    // Only rows, not headers
     {
         // You will get control here when anything in the row is clicked.
         // In your case just filter for your target and you're done.
     }

【讨论】:

  • 在对行进行排序时,我在控制台上收到 javascript 错误,因为我试图在单击行时获取数据属性 ID。检查未定义的 if 语句是我在行单击事件中缺少的,以确定它是行还是标题。谢谢@philw。
【解决方案2】:

你必须这样做:

var grid = $("#your_grid").bootgrid({
    formatters: {
        "commands": function(column, row)
         {
            return '<button class="command-select"data-row-id='+ row.id +'></button>';
         }
    }
    }).on("loaded.rs.jquery.bootgrid", function () {
        grid.find(".command-select").on("click", function (e) {
            var id = $(this).data("row-id");
            console.log(e)
            console.log(id);
        });
    });

注意 grid.find 指的是在第一行创建的网格变量。

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多