2

だから私は次のコードを持っています:

jQuery('#id').live('keyup.autocomplete', function () {
    jQuery(this).autocomplete({
        source: function (request, response) {
            jQuery.getJSON("link?callback=?", {
                format: 'jsonp',
                ...
            }, response);
        },
        minLength: 2,
        selectFirst: true,
        select: function (event, ui) {
                ...
        }
    })
});

Firefox で入力を使用しようとすると、次のようになります。

TypeError: jQuery(this).autocomplete is not a function
[Break On This Error]   

select: function( event, ui ) {

このエラーは Firefox でのみ発生し、他のすべてのブラウザーでは問題なく動作します。何か案は?

4

1 に答える 1

4

jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベントハンドラーをアタッチします。古いバージョンのjQueryのユーザーは、.live()ではなく.delegate()を使用する必要があります。

$(セレクター).live(イベントデータハンドラー); // jQuery 1.3+

$(document).delegate(selectoreventsdatahandler); // jQuery 1.4.3+

$(document).on(eventsselectordatahandler); // jQuery 1.7+

以下のリンクを参照して くださいhttp://api.jquery.com/live/

于 2013-01-15T12:21:27.960 に答える