0

私はこれを持っていました:

$( "#glavnotursene" ).autocomplete({
    delay: 0,
    source: 'extrastuff.php?glavnotursene',
    select: function( event, ui ) {
        window.location = 'maps.php?id. ' + ui.item.nomer;
    }
});

そして、それは完璧に機能します。アイテムがポップアップしてクリックすると、maps.php にリダイレクトされます。カテゴリも使用することにしたので、次のようにしました。

    $.widget( "custom.catcomplete", $.ui.autocomplete, {
            _renderMenu: function( ul, items ) {
                var self = this,
                    currentCategory = "";
                $.each( items, function( index, item ) {
                    if ( item.category != currentCategory ) {
                        ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
                        currentCategory = item.category;
                    }
                    self._renderItem( ul, item );
                });
            }
        });

$( "#glavnotursene" ).catcomplete({
        delay: 0,
        source: 'extrastuff.php?glavnotursene',
        select: function( event, ui ) {
            window.location = 'maps.php?id. ' + ui.item.nomer;
        }
    });

選択が機能しなくなるため、人々はリダイレクトされません。

私は使用しています:

  • jQuery UI - v1.10.0

  • jQuery v1.9.1

4

1 に答える 1

1

このようにしてみてください:

$( "#glavnotursene" ).autocomplete({
   delay: 0,
   source: 'extrastuff.php?glavnotursene',
   select: function( event, ui ) {
       window.location = 'maps.php?id. ' + ui.item.nomer;
   }
}).data("autocomplete")._renderMenu = function(ul, items) {
  var self = this, currentCategory = "";
  $.each( items, function( index, item ) {
     if ( item.category != currentCategory ) {
        ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
        currentCategory = item.category;
     }
     self._renderItem( ul, item );
  });
};

動作する場合は、 のみになり$('#glavnotursene')ます。それを一般化するいくつかの方法は、それを外部関数に割り当てることです:

function my_autocomplete(ul, items, self){
  var currentCategory = "";
  $.each( items, function( index, item ) {
     if ( item.category != currentCategory ) {
        ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
        currentCategory = item.category;
     }
     self._renderItem( ul, item );
  });
}

$( "#glavnotursene" ).catcomplete({
   delay: 0,
   source: 'extrastuff.php?glavnotursene',
   select: function( event, ui ) {
       window.location = 'maps.php?id. ' + ui.item.nomer;
   }
}).data("autocomplete")._renderMenu = function(ul, items) {
  my_autocomplete(ul, items, this);
};

これが機能するかどうかは確認していませんが、うまくいくことを願っています。

于 2013-03-01T15:37:27.657 に答える