我知道这个问题已被多次询问,但形式不同。我想访问最顶层函数范围内的selected
变量(alert
当前正在返回undefined)。我知道我需要以某种方式使用return
。提前谢谢。
$('#people_search_mobile').change(function() {
var selected;
$('li a', $('#suggestions')).bind('click.autocomplete',function(){
selected = ($(this).text());
});
alert(selected);
}
答案 0 :(得分:4)
这没有任何意义。当li a
发生时,alert
尚未被点击。 alert
将总是显示undefined
,为selected
分配值的代码尚未运行,可能从不运行。
如果要提醒值,则需要在实际点击li a
时执行此操作:
$('#people_search_mobile').change(function() {
var selected;
$('li a', $('#suggestions')).bind('click.autocomplete',function(){
selected = ($(this).text());
alert(selected);
});
}
答案 1 :(得分:1)
Meagar是正确的,但是我发现有时候将函数写入别处会有所帮助,这样我就可以保持事件处理程序的清洁。
$('#people_search_mobile').change(function() {
var selected, myClickHandler;
myClickHandler = function(){
selected = ($(this).text());
alert(selected);
};
$('li a', $('#suggestions')).bind('click.autocomplete', myClickHandler);
}
编辑或者,如果您想将所选值传递给其他地方的其他功能......
myClickHandler = function(){
selected = ($(this).text());
showMyAlert(selected);
};
...
function showMyAlert(selected){
alert(selected);
}