如何在jquery中调用函数

时间:2013-05-02 02:09:09

标签: jquery function

我有一个名为monitoring()的函数,如此fiddle。我的问题是,如果我想调用该函数,我可以简单地执行此操作吗?

$('#status_table #monitor_'+rowID).change(monitoring(rowID));

我的逻辑是,当复选框的状态(#monitor_'+rowID是复选框ID)发生变化时,将调用该函数。

由于我想知道是否正在调用该函数,我会执行以下操作:

$('#test').append(fbType + fbNum);

但它没有为div #test中的fbType和fbNum显示任何内容。 有人能指出我应该如何调用该函数或纠正我在该代码/逻辑中的错误?

4 个答案:

答案 0 :(得分:2)

change期望引用到一个函数,而你当前正在调用并使用其返回值作为change的参数 - 不是你想要的,因为它不会返回一个函数。

一个选项是创建一个函数生成器,它接受行ID并使用返回值作为change的参数,粗略地说:

function createMonitor(rowId) {
    return function() {
        // Do something with rowId
    };
};

$('#status_table #monitor_'+rowID).change(createMonitor(rowID));

在不知道rowID来自何处的情况下,很难知道这是否是最佳方法。

答案 1 :(得分:2)

您当前的代码将call函数monitoring将其返回值绑定为事件处理程序,这可能不是您所需要的。

你可以这样做:

$('#status_table #monitor_'+rowID).change(function() {
    monitoring(rowID);
});

答案 2 :(得分:0)

关闭的力量啊:

$('#status_table #monitor_'+rowID).change(function() { monitoring(rowID) });

它会比这更多,因为你可能需要在某处传递rowID;看着你的小提琴,乍一看好像你想把这个片段放在函数addText中,你计算一个rowID。

更正了小提琴(使用了rowID): http://jsfiddle.net/EVW4S/

似乎此代码存在更多问题... 一个可能有助于调试的提示:console.debug非常有用(而不是使用alert()或更改内容)

答案 3 :(得分:0)

在某处创建一个按钮以触发该功能。您也可以更好地控制该功能。