天道酬勤,学无止境

Dynatable callback function not working

I'm trying to bind click event to dynatable generated, I've tried $('#my-final-table hr').on("click",function(){alert("foo");}); so I'm trying to bind it after loading data:

var jsondata=[
  {
    "band": "Weezer",
    "song": "El Scorcho"
  },
  {
    "band": "Chevelle",
    "song": "Family System"
  }
];
$('#my-final-table').dynatable({
  dataset: {
    records: jsondata
  }
})
.bind('dynatable:afterProcess', function(){alert('foo')});

But it doesn't work, no alert is shown after loading. JSFiddle:http://jsfiddle.net/maysamsh/pDVvx/

标签

评论

In the example from the dynatable website they manually call the afterProcess function the first time it runs. For your code that looks something like:

var processingComplete = function(){alert('foo')};
$('#my-final-table').dynatable({
  dataset: {
    records: jsondata
  }
}).bind('dynatable:afterProcess', processingComplete);

// call the first time manually
processingComplete();

If you want to see this in a fiddle, check here: http://jsfiddle.net/pDVvx/2/

In case you were interested the dynatable code I'm referring to is:

$table.dynatable({
  // settings & code here
}).bind('dynatable:afterProcess', updateChart);

// Run our updateChart function for the first time.
updateChart();

Best of luck!

try adding a parameter to your callback function

$('#my-final-table').dynatable({
   dataset: {
   records: jsondata
}
}).bind('dynatable:afterUpdate', processingComplete);

function processingComplete(a)
{
 alert('foo');
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Javascript添加删除行发送表单而不是添加行(Javascript add delete row sends form instead of adding row)
    问题 任何人都可以帮助我处理这个脚本。 为什么要提交此表单,而不是在表上添加新行? 如果我删除表单标签和提交按钮,它可以很好地添加和删除行。 <html> <head> <script src="http://code.jquery.com/jquery-1.5.1.min.js"></script> <script> document).ready(function() { var id = 0; // Add button functionality $("table.dynatable button.add").click(function() { id++; var master = $(this).parents("table.dynatable"); // Get a new row based on the prototype row var prot = master.find(".prototype").clone(); prot.attr("class", "") prot.find(".id").attr("value", id); master.find("tbody").append(prot); }); // Remove button functionality $("table.dynatable input.remove").live("click
  • 从Dynatable加载远程JSON(Load remote JSON from Dynatable)
    问题 更新:为了避免问题完全归因于相同的原产地政策,我已经尝试在本地服务该服务,其中所有资产都使用Serve来自http://localhost:4000 。 它没有解决问题。 因此,由于相同的原始策略,可能无法编辑小提琴,但是您可以在此处看到代码。 我正在尝试使用Dynatable加载外部JSON,跳过读取/规范化步骤(该步骤从现有表生成JSON)。 应该支持它,但是它对我不起作用。 这是我对JSFiddle的尝试。 从小提琴中可以看出,从文档中加载JSON(对我来说似乎并不是很有用),可以正常工作。 但是从URL提取它根本不起作用。 这是我的JavaScript: // getting JSON from the document works, but of what use is that? $(document).ready( function() { $('#local').dynatable({ dataset: { records: JSON.parse($('#music').text()) } }); // getting JSON from a remote source fails: $('#remote').dynatable({ dataset: { ajax: true, ajaxOnLoad: true, ajaxUrl: '//www
  • Load remote JSON from Dynatable
    Update: to avoid the possibility that the problem comes solely down to the same origin policy, I've tried serving this locally where all assets are coming from http://localhost:4000 using Serve. It didn't solve the problem. So editing the fiddle might not work because of the same origin policy, but you can see the code there. I'm trying to use Dynatable to load external JSON, skipping the read/normalize step (which generates the JSON from an existing table). This is supposed to be supported, but it's not working for me. Here's my attempt on JSFiddle. Loading JSON from within the document
  • Javascript add delete row sends form instead of adding row
    Can anyone help my with this script. Why is this form being submitted, instead of adding a new row on the table? If I delete the form tags and the submit button it works well to add and delete rows. <html> <head> <script src="http://code.jquery.com/jquery-1.5.1.min.js"></script> <script> document).ready(function() { var id = 0; // Add button functionality $("table.dynatable button.add").click(function() { id++; var master = $(this).parents("table.dynatable"); // Get a new row based on the prototype row var prot = master.find(".prototype").clone(); prot.attr("class", "") prot.find(".id").attr(
  • Dynatable and input fields (like checkboxes)
    I'm not so skilled in jQuery, so I downloaded Dynatable to manipulate my tables. It's OK for almost all features, but I don't know how to keep the state of the input fields when I use the pagination. For instance: the first column of each row of my table is a checkbox. So I check some checkboxes in the first page, then I change the page, then a go back to the first page and the checkboxes are unchecked because the script rebuild the table each time I suppose. How can I solve this?
  • 动态和输入字段(如复选框)(Dynatable and input fields (like checkboxes))
    问题 我对 jQuery 不是很熟练,所以我下载了 Dynatable 来操作我的表格。 几乎所有功能都可以,但是我不知道如何在使用分页时保持输入字段的状态。 例如:我的表格每一行的第一列是一个复选框。 所以我检查了第一页中的一些复选框,然后我更改了页面,然后返回到第一页并且复选框未被选中,因为脚本每次我想都会重建表格。 我该如何解决这个问题?
  • Html 表到 json 数组(Html table to array of json)
    问题 我有动态行和列的表,我试图通过循环遍历每个tr和td并在文本框中查找值来将 HTML 表转换为 Json,但没有运气。这是我的 js 代码。 $("#btn_Table2Json").click(function () { var rows = []; $('table.dynatable tbody tr').each(function (i, n) { var $row = $(n); if (n.className.toUpperCase() != "Prototype".toUpperCase() && n.className.toUpperCase() != "Header".toUpperCase()) { $('table.dynatable tbody td').each(function (j, d) { rows.push({ //Here id,Name,Address,Contact are dynamic.so need to find it inside of 'th' of table. //but i am not being able to find it, so i just hard coded it :( Id: $row.find('td:eq(0)').text(), Name: $row.find('td:eq(1)').text
  • dc js - 创建多列维度(dc js - Create Multiple Column Dimension)
    问题 我正在尝试使用dc.js汇总数据表,并且我正在使用dynaTable插件进行分页和其他选项。 通常在dc.js数据表中我们会得到数据中显示的全部数据。 But I'm trying to summarize the data like a pivot table and display it on the web and when the selection happens the data table needs to change. 我通过创建dimension和group来完成它,并将该组传递给dynaTable 。 它工作正常。 假设我有 5 列数据。 我可以在它的任何列上创建一个维度。 示例:我在第一列上创建一个维度,并对最后一列的值进行分组,假设它是A-20, B-42, C-50, D-20. . 现在我的组包含该值和变量。 但我希望创建一个结合 2-3 列的维度。 例子: A,AA,20 A,AB,10 A,AC,30 A,AD,80 B,BA,30 B,BB,40 B,BC,50 B,BD,90 C,CA,70 C,CB,20 C,CC,10 C,CD,80 D,DA,30 D,DB,40 D,DC,60 D,DD,80 是否可以像这样在多列上创建维度? 如果是这样,请帮助我。 这是小提琴:http://jsfiddle.net/3v68c/3/ 回答1
  • gwt> 导入示例项目(gwt> importing a sample project)
    问题 我只是在尝试强制它工作并在网上寻找答案 2 小时后才刚刚完成。 您究竟如何将示例 gwt 应用程序导入 Eclipse 并使其运行? 顺便说一句,我在我的文件中的任何地方都找不到“projectCreator.cmd”,假设我已经使用 eclipse 插件更新程序到 d/l gwt 1.7.1,它在哪里? 回答1 好吧,这就是我最终做的,虽然它很丑,但可能不是它本来的样子: 我创建了一个名为“bla”的新应用程序,或者直接在项目 > 导入... > 一般\文件系统...(如将文件导入项目中) 然后我选择了示例应用程序之一的顶部文件夹,例如 ..gwt..samples/Mail 选择所有文件夹和文件。 选择的选项“无警告覆盖\询问”取消选择的选项“复制整个文件夹结构” 就是这样。 我去 build.XML 将项目名称重命名为“bla”,然后单击作为 Web 应用程序运行。 祝你好运。 回答2 对于 GWT 2.4:在每个项目的根目录中,您都会找到README.txt 。 如果您按照其指示(包括通过 Ant 创建 Eclipse 项目配置),您可以轻松导入项目。 要运行它,我还必须配置项目的 GWT 设置(项目的上下文菜单 -> Google -> WebToolkit 设置)。 回答3 首先,为您的源创建一个 Eclipse 项目(如果您还没有这样做),请选择 File >
  • Html table to array of json
    I have table with dynamic Rows and columns,i was trying to convert HTML table to Json by looping through each tr and td and finding values inside textbox but with no luck.Here is my js code. $("#btn_Table2Json").click(function () { var rows = []; $('table.dynatable tbody tr').each(function (i, n) { var $row = $(n); if (n.className.toUpperCase() != "Prototype".toUpperCase() && n.className.toUpperCase() != "Header".toUpperCase()) { $('table.dynatable tbody td').each(function (j, d) { rows.push({ //Here id,Name,Address,Contact are dynamic.so need to find it inside of 'th' of table. //but i am not
  • dc js - Create Multiple Column Dimension
    I'm trying to summarize the data table using dc.js and I'm using dynaTable plugin for for pagination and other options. Normally in the dc.js data table we get the entire data displayed in the data. But I'm trying to summarize the data like a pivot table and display it on the web and when the selection happens the data table needs to change. I've done it by creating a dimension and group and i passed that group to dynaTable. And it's working fine. Suppose I have 5 columns of data. I can create a dimension on any column of it. Example : I'm creating a dimension on the first columns and grouping
  • 单击按钮时,如何触发 jquery 数据表 fnServerData 以通过 AJAX 更新表?(how can I trigger jquery datatables fnServerData to update a table via AJAX when I click a button?)
    问题 我正在使用带有服务器端数据的数据表插件,并使用 AJAX 更新表。 我的数据表设置如下所示: tblOrders = parameters.table.dataTable( { "sDom": '<"S"f>t<"E"lp>', "sAjaxSource": "../file.cfc", "bServerSide": true, "sPaginationType": "full_numbers", "bPaginate": true, "bRetrieve": true, "bLengthChange": false, "bAutoWidth": false, "aaSorting": [[ 10, "desc" ]], "aoColumns": [ ... columns ], "fnInitComplete": function(oSettings, json) { // trying to listen for updates $(window).on('repaint_orders', function(){ $('.tbl_orders').fnServerData( sSource, aoData, fnCallback, oSettings ); }); }, "fnServerData": function ( sSource, aoData
  • Compile Time Weaving Null Pointer Exception
    Edit 7: The problem seems to be how to get @Configurable working with HttpSessionListener, a workaround is suggested, but I'dd prefer not to to interact with the WebApplicationContext directly: @Configurable(autowire = Autowire.BY_TYPE, preConstruction = true) public class SessionListener implements HttpSessionListener { private static final Logger log; @Autowired private A a; @Override public void sessionCreated(HttpSessionEvent se) { a.doSomething(); // <- Throws NPE log.info("New session was created"); } @Override public void sessionDestroyed(HttpSessionEvent se) { log.info("A session was
  • 编译时编织空指针异常(Compile Time Weaving Null Pointer Exception)
    问题 编辑7: 问题似乎是如何让@Configurable与HttpSessionListener一起工作,建议使用一种解决方法,但我不想直接与WebApplicationContext交互: @Configurable(autowire = Autowire.BY_TYPE, preConstruction = true) public class SessionListener implements HttpSessionListener { private static final Logger log; @Autowired private A a; @Override public void sessionCreated(HttpSessionEvent se) { a.doSomething(); // <- Throws NPE log.info("New session was created"); } @Override public void sessionDestroyed(HttpSessionEvent se) { log.info("A session was closed"); } } 编辑6: 我简化了示例项目:您现在可以从 CLI 运行它 下载并解压项目:http://www.2shared.com/file/KpS5xeqf/dynatable
  • 如何将JSON对象转换为HTML表? [关闭](How do I convert a JSON Object into a HTML table? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我有一个看起来像这样的JSON对象: {"a": 1, "b": 3, "ds": 4} 我想将其转换为如下所示的HTML表: name | Value a 1 b 3 ds 4 谁能告诉我如何实现这一目标? 回答1 使用jQuery非常简单: $(function() { var jsonObj = $.parseJSON('{"a":1,"b":3,"ds":4}'); var html = '<table border="1">'; $.each(jsonObj, function(key, value) { html += '<tr>'; html += '<td>' + key + '</td>'; html += '<td>' + value + '</td>'; html += '</tr>'; }); html += '</table>'; $('div').html(html); }); 这是工作提琴的链接。 更新:实现此目的的另一种方法是使用称为dynatable的库将JSON转换为可排序的表。 回答2 您可以使用javascript: <script type="text-javascript"
  • how can I trigger jquery datatables fnServerData to update a table via AJAX when I click a button?
    I'm using the datatables plugin with server-side data and am updating the table using AJAX. My dataTables setup looks like this: tblOrders = parameters.table.dataTable( { "sDom": '<"S"f>t<"E"lp>', "sAjaxSource": "../file.cfc", "bServerSide": true, "sPaginationType": "full_numbers", "bPaginate": true, "bRetrieve": true, "bLengthChange": false, "bAutoWidth": false, "aaSorting": [[ 10, "desc" ]], "aoColumns": [ ... columns ], "fnInitComplete": function(oSettings, json) { // trying to listen for updates $(window).on('repaint_orders', function(){ $('.tbl_orders').fnServerData( sSource, aoData
  • 借助 C++ 进行 Windows 开发---线程池取消和清理
    借助 C++ 进行 Windows 开发---线程池取消和清理 取消和清理是相当困难的问题,以解决说到多线程应用程序。如果是,可以安全地关闭句柄?您是否需要考虑哪个线程取消的操作?更糟的是,一些多线程的 Api 不重入,潜在地提高性能,但还为开发人员增加的复杂性。我引入了最后一个月的专栏中的线程池环境 (msdn.microsoft.com/magazine/hh394144)。此环境允许的一项关键功能是清理组,而这是什么我将重点此处。清理组不要尝试解决所有的世界取消和清理问题。他们所做的就是该线程池的对象和回调,使其更易于管理,并且这间接有助于简化取消和清除的其他 Api 和资源,根据需要。到目前为止,我已经只向您显示如何使用 unique_handle 类模板自动关闭通过 CloseThreadpoolWork 函数的工作对象。(请参阅处的 8 月 2011年列msdn.microsoft.com/magazine/hh335066 的详细信息。)但是有一些限制,使用此方法。如果要说中是否回调会取消挂起或不,您需要首先调用 WaitForThreadpoolWorkCallbacks。这使得两个函数调用的回调生成的 multipliednumber 对象正在使用您的应用程序。如果您倾向于使用 TrySubmitThreadpoolCallback,您甚至不能获得这样的机会
  • PHP回调函数不适用于对象函数(PHP Callback function not working on object functions)
    问题 我有一个数组,想通过array_walk在数组的每个成员上应用MySQLi->real_escape_string但这不起作用: array_walk($array, '$mysqli->real_escape_string'); 它给出了这个错误: 警告:array_walk() 期望参数 2 是一个有效的回调,函数 '$mysqli->real_escape_string' 在第 69 行的 C:\wamp\www\ts.php 中未找到或无效的函数名称 $mysqli是一个有效的对象,如果我在其他任何东西上执行$mysqli->real_escape_string('anything') , $mysqli->real_escape_string('anything')可以正常工作。 我的问题:不能将对象的函数作为回调传递吗? 或者我做错了什么。 重要提示:我知道我可以创建自己的回调函数并在其中实现 $mysqli->real_escape_string但我想知道是否不能将回调用作对象的函数? 回答1 正如您可以在 php 回调页面上阅读的那样,您应该使用: # produces an error array_walk($array, array($msqli, 'real_escape_string')); array_map($array, array($msqli
  • 借助 C++ 进行 Windows 开发线程池环境
    借助 C++ 进行 Windows 开发线程池环境 组成 Windows 线程池 API 的对象可被分为两大阵营。第一阵营中的是那些表示工作、计时器、I/O 和可等待的对象。这些对象都有可能导致在线程池上执行回调。我已经在上个月的专栏中介绍过工作对象,并将在后续文章中探讨余下的对象。第二阵营中的是那些用来控制这些回调的执行环境的对象。这正是本月专栏的重点讨论内容。线程池环境会影响回调是在默认池中执行,还是在您自己生成的特定池中执行,以及回调是否应该优先处理等等。随着您使用的工作对象或回调越来越多,能够控制这些环境就变得越来越重要。它还降低了协调这些对象的取消和拆解操作的复杂程度(下月专栏的主题)。与其他组成线程池 API 的对象相比,线程池环境并不是相同意义上的对象。为了实现效率,它直接声明为一个结构,这样一来,您就可以直接在应用程序中为其分配存储。然而,您应该按照处理其他对象的方式来处理它,不要假设您了解其内部信息,而是只通过一组公开的 API 函数来访问它。该结构名为 TP_CALLBACK_ENVIRON,如果您继续了解它,立刻就会注意到:自 Windows Vista 首次引入它以来,它已经有过改变。这再一次提醒您必须使用 API 函数。函数本身只是去操控此结构,但防止您做出任何改动。它们通过内嵌声明,允许编译器尽可能将其优化,所以不要想象您可以做得更好
  • 回调如何在 AngularJS 调用 REST 服务中工作?(How does callback work in AngularJS call to REST service?)
    问题 我正在学习 AngularJS 和 REST。 代码示例在身份验证函数中重复使用callback一词。 “回调”是 JavaScript 还是 Angular 中的关键字? 或者callback只是在此代码中创建的自定义变量? callback在下面的代码中是如何工作的? 谷歌搜索callback和 AngularJS 没有产生可用的结果。 可以在此链接中阅读相关 AngularJS 模块的代码,其中还包含示例应用程序的所有代码。 这是模块代码本身: angular.module('auth', []).factory( 'auth', function($rootScope, $http, $location) { enter = function() { if ($location.path() != auth.loginPath) { auth.path = $location.path(); if (!auth.authenticated) { $location.path(auth.loginPath); } } } var auth = { authenticated : false, loginPath : '/login', logoutPath : '/logout', homePath : '/', path : $location.path()