-2

応答として受け取った特定の li を強調表示するために select2.js を使用しています。

var cityCounter = -1;
var sul = $('.select2-search-choice');
$(".select2-input").keyup(function (e) {
    // TODO CODE
    // console.log($(this).val());
    var kKey = e.which;
    if (kKey === 40) {
        var sli = sul.$('li');
        var slen = sli.length;
        ++cityCounter;
        if (cityCounter > slen - 1) cityCounter = 0
        //sli[suggDateCounter].getElementsByTagName('a')[0].focus();
        for (k = 0; k < slen; k++) {
            sli[k].getElementsByTagName('a')[0].style.background = '#F9F9F9';
        }
        sli[cityCounter].getElementsByTagName('a')[0].style.background = '#CCCCCC';
        //alert(suggcounter);
        //console.log("suggDateCounter: "+suggDateCounter);
        if (cityCounter != (slen - 1)) // Current isn't last
        sli[slen - 1].getElementsByTagName('a')[0].style.background = '#000000';

    }
    if (ajaxInProgress == false) {
        if ($(this).val().trim().length >= 3) {
            ajaxInProgress = true;
            $(".select2-results").html("");
            $.ajax({
                url: '<?php echo $this->registry->siteurl; ?>/index.php',
                data: 'route=index/get_home_cities/' + $(this).val(),
                type: 'GET',
                success: function (response) {
                    $(".select2-results").append(response);
                    //$(".select2-results").append("<li>UAE</li>");
                    ajaxInProgress = false;
                }
            });
        }
    }
}); 

問題は、Type エラーが発生していて、なぜこれが発生するのかがわからないことです。

         TypeError: sul.$ is not a function 
4

1 に答える 1

2

私はあなたが意味したと思います

 var sli = sul.find('li');
于 2013-11-06T11:33:58.093 に答える