使用时评估对象属性

时间:2012-01-09 05:30:59

标签: javascript jquery closures

我正在使用JQuery自动完成AJAX插件,如下所示;

$(document).ready(function() {
    $("#myfield").autocomplete({ 
        serviceUrl:'autocomplete.asp?soc=' + $("#soc").val()
    });
});

它不起作用,因为(我假设)serviceUrl属性在页面加载时被评估一次,而我希望它改变以反映$(“#soc”)的当前值。

我可以通过某种关闭实现这一点,还是必须手动更改$("#soc").change()上的属性?

1 个答案:

答案 0 :(得分:0)

从文档看起来,一旦创建自动完成对象,选项就会被绑定。因此,如果#soc正在发生变化,那么您每次都需要更新serviceUrl。

//create variable to store your autocomplete
var ac = $('#query').autocomplete(options);
//update it when #soc changes
$('#soc').change( function() {
  ac.setOptions({ serviceUrl: 'autocomplete.asp?soc=' + $("#soc").val() });
});