Javascript 为什么我的函数值被调用了两次?

Javascript 为什么我的函数值被调用了两次?,javascript,jquery,json,function,onclick,Javascript,Jquery,Json,Function,Onclick,我有一个正在另一个函数中调用的函数。它应该返回json对象的值。json值根据我设置的过滤器而变化 为什么两个值都被调用,而不仅仅是最后一个 我的代码: $.getJSON(json, api_result => { myFunc('#api_results', api_result); }); function myFunc(id, json_data) { $(id).click(function() { console.log(json_data);

我有一个正在另一个函数中调用的函数。它应该返回json对象的值。json值根据我设置的过滤器而变化

为什么两个值都被调用,而不仅仅是最后一个

我的代码:

$.getJSON(json, api_result => {

      myFunc('#api_results', api_result);
});

function myFunc(id, json_data) {
  $(id).click(function() {
    console.log(json_data);
  });
}
我的结果是:


我已经更新了我的过滤器来更改json的参数,但点击后我得到了所有更改。为什么我不能只获取过滤后的json的最后一个值呢?

每次您获取一组新数据(从
$.getJSON
)时,您都在调用
myFunc
,并将另一个处理程序绑定到
上的
单击
$(id)
事件。在绑定新的click事件处理程序之前,需要删除任何现有的click事件处理程序:

function myFunc(id, json_data) {
  $(id).off('click').on('click', function() {
    console.log(json_data);
  });
}

每次从
$.getJSON
获取一组新数据时,您都在调用
myFunc
,并将另一个处理程序绑定到
上的
单击
事件(
$(id)
)。在绑定新的click事件处理程序之前,需要删除任何现有的click事件处理程序:

function myFunc(id, json_data) {
  $(id).off('click').on('click', function() {
    console.log(json_data);
  });
}

导出\u数据
未定义的
。你在问什么<在您的示例中,code>myFunc
被调用过一次。@StackSlave,我的错。我修复了itI的过滤器,这些过滤器可以更改正在调用的json文件的数据。例如,如果我更改日期范围,json数据将更改。
export\u data
undefined
。你在问什么<在您的示例中,code>myFunc
被调用过一次。@StackSlave,我的错。我修复了itI的过滤器,这些过滤器可以更改正在调用的json文件的数据。例如,如果我更改日期范围,json数据就会更改。太棒了!工作起来很有魅力!工作得很有魅力