【问题标题】:Why is my function value being called twice?为什么我的函数值被调用两次?
【发布时间】:2019-10-03 23:51:04
【问题描述】:

我有一个在另一个函数中被调用的函数。它应该返回一个 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 的最后一个值?

【问题讨论】:

  • export_dataundefined。你在问什么?在您的示例中,myFunc 被调用一次。
  • @StackSlave,我的错。我修好了
  • 我有过滤器可以更改正在调用的 json 文件的数据。例如,如果我更改 json 数据更改的日期范围。

标签: javascript jquery json function onclick


【解决方案1】:

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

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

【讨论】:

  • 太棒了!像魅力一样工作
猜你喜欢
  • 2019-12-31
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多