【问题标题】:Passing parameters to event handler in jquery [duplicate]在jquery中将参数传递给事件处理程序[重复]
【发布时间】:2015-06-15 05:45:59
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript jquery


【解决方案1】:

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

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

Bind 用于更改将在函数中使用的this 的值,而不是您要查找的值。

我做了一个小小提琴来演示:

Fiddle

【讨论】:

    【解决方案2】:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 2016-06-23
      相关资源
      最近更新 更多