Ваша функция ответа только:
function(data){
$('#suggestionList').innerHTML = '<ul><li>' + data.split('\n').join('</li><li>') + '</li></ul>';
}
и где-то вне всего этого, внутри function suggest(){
:
$('#suggestionList').delegate('li', 'click', function(){
fill(inputTextField, $(this).val());
});
К вашему сведению, причина того, что строка не работает, состоит в том, что значение elem меняется ... чтобы показать вам, что я имею в виду, возьмем следующий пример:
for(var i=0; i<10; i++){
$('#someDiv').bind('click', function(){ alert(i); });
}
, который будет показывать '10' независимо от того, на какой div вы нажимаете, потому что переменная i продолжает увеличиваться до 10, и все функции ссылаются на эту одну переменную. Чтобы это работало, нужно какое-то закрытие:
for(var i=0; i<10; i++){
$('#someDiv').bind('click', (function(x){ return function(){ alert(x); } })(i));
}
теперь i
передается внутренней функции и упоминается как x.