2016-04-14 104 views
0

我正在使用带命令按钮的Bootgrid,并且如果网格中只有一行(我可以确定是否只有一行来自php中的数据),那么我想要触发命令按钮点击事件。命令按钮有一个叫做“command-view”的类。我已经试过如下:如何触发Bootgrid命令按钮的点击事件

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

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

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

回答

0

你必须做这样的:

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指电网变量,在第一行创建的。

3

更传统的方法是使用内置的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. 
    } 
+0

排序行时我在控制台上得到了javascript错误,因为我试图在行单击时获取数据属性ID。检查未定义的if语句是我在行单击事件中缺少的,以确定它是行还是标题。谢谢@philw。 – ajexpress