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/

无论如何我可以将它组合成一个使其更整洁吗?

4

1 回答 1

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);
});​
于 2012-10-05T13:45:55.407 回答