【发布时间】:2016-01-10 15:49:48
【问题描述】:
我正在使用数据表并从 ajax URL 获取数据。我返回的表数据的每一行都包含一个字段,该字段呈现一个如下所示的按钮:
<button type="button" data-catid="8" data-catname="Programming:JavaScript"></button>
赋予 data-catid 和 data-catname 的值来自数据表检索到的数据。
在某些情况下,当表格完成加载时,我想触发对这些按钮之一的点击。我的代码是这样的:
$('#mydatatable').find('button[data-catid="9"]').trigger('click');
但是,我找不到执行此操作的方法,以便它在表格呈现并且按钮存在于 dom 之后发生,因此我可以找到它并触发点击。
我已经尝试过 drawCallback 和 initComplete,但是在按钮被实际添加到 dom 之后,它们都没有被触发,让我可以用 jquery 找到它。
有什么办法可以做到这一点吗?即在 mytable 完成通过 ajax 检索其数据并呈现后触发我的点击?
我正在使用数据表 v 1.10
编辑: 这是我的点击事件处理程序如何附加到汇总表的方式。
var selectedCat = 0;
$('#mydatatable :button').click(function () {
selectedCat = this.getAttribute("data-catId");
console.log("selecteCat is " + selectedCat);
qDetailTable.ajax.url('/datatables/question-data/' + selectedCat).load();
var selectedCatName = this.getAttribute("data-catName");
$('#questDetailCat').text('Questions about: ' + selectedCatName);
$('#questSummary').hide();
$('#questDetail').show();
});
【问题讨论】:
-
如果带有
data-catid="9"的按钮在屏幕上不可见怎么办,即在第2页上,您想在加载数据时触发点击,还是在用户转到第2页时触发点击?此外,了解如何附加单击事件处理程序也很重要。 -
这是第 2 页的好问题,尽管分页是客户端。基本上这个页面有 2 个数据表,一个是汇总表,另一个是详细表,一个或另一个显示。如果您单击汇总表行,则会打开该类别的详细信息。我正在努力做到这一点,以便当用户从其他地方返回到此页面时,如果他们最后一次查看详细信息面板,那么这就是将显示的面板。我将编辑我的问题以显示点击事件处理程序。
标签: javascript jquery datatables