2

JavaScript と ajax を使用して、独自のオートコンプリート機能を作成しました。すべてうまくいっていますが、大きな問題が 1 つあります。位置付けです。現在、リストを次のように配置しています。

function ajaxautocomplete(elm)
{
    lista.innerHTML="";
        var x=getOffset(elm).left;
        var y=getOffset(elm).top;
        lista.style.position="absolute";
        lista.style.left=(x+5)+"px";
        lista.style.top=(y+25)+"px";
...
}

「lista」はオートコンプリート リストで、「elm」は現在のテキスト入力です。今、テキスト入力をセルとして含むテーブルがあり、このオートコンプリート機能が必要です。この配置は機能しますが、テーブルが十分に大きく、スクロールが必要な場合、ページを下にスクロールして下部のセルをオートコンプリートしようとすると、配置が機能しなくなり、リストがページの上部に表示されます、十分にスクロールすると画面の外に出るかもしれません。

ページをスクロールしているときでも、そのリストに動的に位置を割り当てる方法はありますか? ありがとうございました!

編集:言及するのを忘れていましたが、これは私の getOffset(elm) 関数です:

function getOffset( el ) {
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.offsetParent;
    }
    return { top: _y, left: _x };
}
4

1 に答える 1

0

このプラグインや他のプラグインのように、このために構築されたjqueryプラグインを使用しないでください。そうしないと、やらなければならないことがたくさんあり、それだけの価値はありません。画面に表示される部分に従ってオートコンプリート位置を計算しようとすると、大きなりんご..

于 2012-07-05T09:37:22.917 に答える