gpt4 book ai didi

javascript - 如何传递对 Javascript 函数的引用?

转载 作者:行者123 更新时间:2023-11-28 07:40:52 26 4
gpt4 key购买 nike

我正在使用 DataTables 构建一个表,它使用 AJAX 作为数据源。但是,我似乎无法将函数传递到 AJAX 参数中; $.post() 函数(来自常规 JQuery)总是在加载页面时发送我的变量计算结果。我不太了解 JS 的内部工作原理,所以我不确定我做错了什么。这是我的代码:

function init_datatable() {

var url = null;
var datasource = null;

// Set AJAX url and data based on which page we're on
if (window.location.pathname.indexOf("bookmarks") > -1) {
url = "/bookmarks";
datasource = bookmarks;
} else {
url = "/search";
datasource = $('#form').serialize();
}

var table = $('#table').DataTable({
"ajax" : function (data, callback, settings) {
$.post(url, datasource, function (data) {
callback(data);
});
}
});
}

如果我直接写 $.post(url, $("#form").serialize()) ,而不传入 serialize() 函数内变量数据源,我得到了预期的结果;每次表单更改时,更新的数据都会包含在 POST 请求中。但是,如果我按照上面所写的那样进行操作,则数据源是页面加载时表单所包含内容的静态对象。我也尝试过这样做

datasource = function() {
$("#form").serialize()
}

但这似乎不起作用。如何将数据源用作静态全局对象和每次调用 $.post() 时需要运行的函数(具体取决于当前页面)?

最佳答案

您的初始 if 被调用一次。那就是问题所在。需要在每个帖子中计算。

将其放入名为 getdatasource() 的函数中,该函数返回它,并在最初和每个帖子中调用它:)

关于javascript - 如何传递对 Javascript 函数的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com