1

我正在为 jQuery UI 自动完成插件开发一个扩展。

我的代码大致如下:

$.widget( "ui.autocomplete", $.ui.autocomplete, {
    options: {
        delay: 500,
        prefix: ""
    },

    _renderItem: function( ul, item ) {
        var label = item.label;
        if ( this.options.prefix ) {
            label = this.options.prefix + " " + label;
        }
        return $( "<li>" )
            .append( $( "<a>" ).text( label ) )
            .appendTo( ul );
    },
});

我想要做的是扩展事件的默认行为,比如“焦点”(例如通过使用以下代码):

focus: function() {
    // prevent value inserted on focus
    alert("fire");
    return false;
}

目前我正在写我的 autocomplete()

$( "#search" ).autocomplete( { //focus:function() ...  })

有没有办法做到这一点?所以当我写

$( "#search" ).autocomplete()

在小部件中自动使用我预定义的焦点功能?

谢谢!

4

1 回答 1

2

好的,答案就这么简单。您将“焦点”、“选择”、“打开”视为任何其他选项:

$.widget( "ui.autocomplete", $.ui.autocomplete, {
    options: {
        delay: 200,

        focus: function(event) {
            alert("does that");
        }
    }
});

而已!下次打电话

$( "#search" ).autocomplete()

它会抓住焦点!

于 2013-11-13T09:17:00.090 回答