扩展jQuery自动完成:覆盖事件的默认行为

时间:2013-11-12 08:48:43

标签: jquery events autocomplete

我正在开发jQuery UI Autocomplete插件的扩展程序。

我的代码近似如下:

$.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 );
    },
});

我想要做的是扩展EVENTS的默认行为,例如“Focus”(例如使用以下代码):

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

当我打电话给我的autocomplete()

时,我正在写作
$( "#search" ).autocomplete( { //focus:function() ...  })

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

$( "#search" ).autocomplete()

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

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

就是这样!下次你打电话

$( "#search" ).autocomplete()

它将成为焦点!