JavaScript 事件更新

标签 javascript jquery-ui jquery livequery

我的 ui-autocomplete 应该将 ajax 请求发送到不同的路径。 我的脚本在更改选择事件时更改此路径。但事件不会更新并将请求发送到旧网址。

我尝试过 live()、on()、livequery()。没有任何效果。

如何更新事件?

我的输入自动完成字段:

<input class="specialization_names ui-autocomplete-input" data-autocomplete-source="/specializations">

我正在更改data-autocomplete-source

接下来我要暴饮暴食的事件(由coffescript生成)

_ref = $('.specialization_names');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
  input = _ref[_i];
  $(input).on('focus', function() {
    return $(input).catcomplete({
      source: $(input).data('autocomplete-source')
    });
  });
}

或将 on() 更改为 live() 或插件 livequery

此代码在选择时更改 url。

var select, _i, _len, _ref;

_ref = $('.resume_scopes');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
  select = _ref[_i];
  $(select).on('change', function() {
    var scope_id;
    scope_id = $(this).children("option:selected").attr('value');
    return $(this).siblings('.specialization_names').attr("data-autocomplete-source", "/specializations/" + scope_id);
  });
}

有没有办法手动刷新一次事件?

最佳答案

jQuery 的 .data 仅从 data-* 属性读取一次(第一次在元素上调用 .data 来获取值(value))。 .attr 更新元素上的属性,但 jQuery 的 .data 已缓存该值。如果您想更新它,请尝试使用.data

return $(this).siblings('.specialization_names').data("autocomplete-source", "/specializations/" + scope_id);

关于JavaScript 事件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936545/

相关文章:

javascript - .click 功能 .load 不起作用

javascript - React 设置状态不会在获取成功函数中更新(在按键事件中)

jquery - 可排序,放置在两个列表之间时自动创建新列表

javascript - 在 html 中创建范围 slider

javascript - 从扩展访问 document.activeElement.value

javascript - 从元素中获取 href 并添加到图像的 src 属性

javascript - Jquery 自动完成未填充文本框

javascript - 模拟点击js

javascript - 悬停在 Bootstrap 中的导航栏链接上的子菜单

javascript - 验证 CSS 选择器