2012-10-05 100 views
0

我基本上有2个事件。最上面的一个从jQuery自动完成中选择选项并将其输出到div searchresultdata。第二个需要从#* SEARCH_INPUT *的内容,并输出到searchresultdata我可以结合这些事件吗?

var devices = [ 
    "ActionScript", 
    "AppleScript", 
    "Asp", 
    "BASIC", 
    "C", 
    "C++", 
    "Clojure", 
    "COBOL", 
    "ColdFusion", 
    "Erlang", 
    "Fortran", 
    "Groovy", 
    "Haskell", 
    "Java", 
    "JavaScript", 
    "Lisp", 
    "Perl", 
    "PHP", 
    "Python", 
    "Ruby", 
    "Scala", 
    "Scheme" 
    ]; 

$("#search_input").autocomplete({ 
    source: devices, 
    select: function(e, i) { 

     var search_input = i.item.value; 
     document.getElementById('searchresultdata').innerHTML = search_input; 
    } 
}); 

//Append div with contents from function sendSelected 
$("#search_input").on("keyup change", function() { 
    var search_input = $(this).val(); 
    if (search_input.length > 1 || search_input == '*') { 
     document.getElementById('searchresultdata').innerHTML = "Everything"; 
    } 

    document.getElementById('searchresultdata').innerHTML = search_input; 
}); 

对于一个活生生的例子,请参阅: http://jsfiddle.net/k2SMb/4/

反正我有可以合并成一个这使它成为一个比较整洁?

回答

1

你可以通过将两个事件链接在一起来使它更整洁,然后你可以使用jQuery的$('#id_selector'),并且当你只需要一次时就不用写变量。结果:

$("#search_input").autocomplete({ 
    source: devices, 
    select: function(e, i) { 
     $('#searchresultdata').text(i.item.value); 
    } 
}).on("keyup change", function() { 
    var search_input = $(this).val(); 
    if (search_input.length > 1 || search_input == '*') { 
     $('#searchresultdata').text("Everything") 
    } 
    $('#searchresultdata').text(search_input); 
});​ 
相关问题