将参数传递给jquery中的事件处理程序

时间:2015-06-15 05:45:59

标签: javascript jquery

我需要将参数发送到运行时生成的下拉列表的on change事件。我怎样才能完成这样的事情:

$(options.host_element).find('select').on('change',(graph_widget.draw_graph).bind(options));

options是我想发送给函数draw_graph的参数,函数是链接但不是参数

2 个答案:

答案 0 :(得分:1)

不确定您的函数的签名,但您可以将参数传递给函数本身,就像对任何正常函数一样,所以它看起来像这样:

$(options.host_element).find('select').on('change',function(){
    graph_widget.draw_graph(options);
});

Bind用于更改将在函数中使用的this的值,而不是您正在寻找的内容。

我做了一个小小的小提示来证明:

Fiddle

答案 1 :(得分:1)

jQuery.on有一个名为data的可选参数:

$(options.host_element).find('select').on('change', options, graph_widget.draw_graph);

稍后在您的事件处理程序中,您可以使用e.data访问数据:

function draw_graph(e) {
   var options = e.data;
}