如何在$(document).ready之后调用带参数的函数

时间:2013-02-13 14:55:25

标签: javascript jquery

我觉得这对于jquery专业人士来说很简单。

我做了一个全局功能。它被变更事件召唤。但它也应该在$(document).ready

之后调用一次

没有参数的函数的简单故事。

$(document).ready(function() {

function_to_call_after_ready();

})

但我必须用参数调用它,如:

({param1: "1"}, function_to_call_after_read)

尝试了几种组合,但我无法弄清楚。

以下是更改事件调用的原始文件:

$("#Verbrauch_Typ").change({param1: "#Verbrauch_Einheit", param2: "#Verbrauch_Typ"}, einheiten_filtern);

作品!

einheiten_filtern({param1: "#Verbrauch_Einheit", param2: "#Verbrauch_Typ"});

不会和"禁用"整个剧本。此外,改变电话不再有效。

3 个答案:

答案 0 :(得分:1)

看起来einheiten_filtern()是一个事件处理程序,它从它收到的事件对象中收集其他数据。

您可以使用on()绑定到ready事件,同时提供其他数据:

$(document).on("ready", {
    param1: "#Verbrauch_Einheit",
    param2: "#Verbrauch_Typ"
}, einheiten_filtern);

答案 1 :(得分:0)

$(document).ready()或您给它的功能没什么特别之处。只需使用普通的方法调用即可。

$(document).ready(function() {
  function_to_call_after_ready("1");
});

答案 2 :(得分:0)

我不是肯定你要求做什么,但是如果你想调用一个带有可变数量参数的函数,请使用.apply

function_to_call.apply(window, arrayOfArguments);

如果您想在此功能的上下文中更改this,请使用.call.apply

function_to_call.apply(jQuery, arrayOfArguments);

.call的工作方式相同,但是接受单个参数而不是所有参数的数组。

如果您希望以这种方式绑定函数而不是立即调用它,请使用.bind(如果可用)或jQuery的$.proxy

$(document).ready(function_to_call.bind(jQuery, arg1, arg2));

.bind$.proxy都不会使用一组参数作为参数。他们都采用了不同数量的论点。