0

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

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

如何更新活动?

我的输入自动完成字段:

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

我在改变data-autocomplete-source

下一条我要参加的活动(由咖啡脚本生成)

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

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

4

1 回答 1

2

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

return $(this).siblings('.specialization_names').data("autocomplete-source", "/specializations/" + scope_id);
于 2012-08-13T15:19:39.800 回答