来自click事件的jQuery调用函数,没有带参数的事件

时间:2014-05-05 16:11:11

标签: jquery jquery-callback

我有一种情况,我希望从文档就绪和点击调用函数。

var load_report = function(params) {
    report_name = params.data.report_name;
    // code continues
}

我可以点击 -

来调用它
$("#report-" + report_name).click({'report_name': report_name}, load_report);

但是,如果满足某些约束条件,我还想从$(document).ready()打电话 -

    $(document).ready(function() {
        if (($.url().param()) && ($.url().param('report_name'))) {
            report_name = $.url().param('report_name');
            // Call load_report with report_name parameter
        }
    }

我已尝试过 - load_report({'report_name': report_name})$.call({'report_name': report_name}, load_report)$({'report_name': report_name}, load_report);,但这些都没有效果。

load_report({'report_name': report_name})看起来最简单,最有希望,但params.data.report_name失败,因为params.data未定义。基本上,我需要做的就是将字典转换为一种格式,其解释方式与.click()事件数据的解释方式相同。

我的问题是 - 如何使用我的参数调用load_report函数而不将其绑定到事件?

2 个答案:

答案 0 :(得分:2)

您必须记住数据密钥

load_report({data : {'report_name': report_name}});

或只是触发事件

$("#report-" + report_name).trigger('click');

答案 1 :(得分:0)

您需要做的就是load_report({'report_name': this.id.replace('report-', '')});

$("#report-" + report_name).click(function(){
    load_report({'report_name': this.id.replace('report-', '')});
});