我的ui-autocomplete应该将ajax请求发送到不同的路径。 我的脚本在更改选择事件上更改此路径。但事件不会更新并向旧网址发送请求。
我试过live(),on(),livequery()。什么都行不通。
如何更新活动?
我的输入自动填充字段:
<input class="specialization_names ui-autocomplete-input" data-autocomplete-source="/specializations">
我正在改变data-autocomplete-source
事件我正在接下来的方式(由coffeescript生成)
_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()
或插入实时查询
此代码更改网址上的代码。
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);
});
}
有没有办法手动刷新一次事件?
答案 0 :(得分:2)
jQuery的.data
仅从data-*
属性读取一次(第一次在元素上调用.data
来获取值)。 .attr
更新元素的属性,但jQuery的.data
已缓存该值。您要更新它,请尝试使用.data
。
return $(this).siblings('.specialization_names').data("autocomplete-source", "/specializations/" + scope_id);