3
  1. 项目清单

我正在查看Jsfiddle 网站中http://jsfiddle.net/g4stL/212/链接上的 JQUERY 示例。

该功能给我留下了深刻的印象。事实上,我们必须在我们的应用程序上实现完全相同的功能。

如果我照原样复制代码,我可以看到多列自动完成。但是选择部分不起作用。如果我选择使用鼠标光标或使用箭头键,程序将失败。

我得到的错误是

“htmlfile:对方法或属性访问的意外调用。”

在 Jquery-1.7.2.js 中 jQuery.fn.extend 代码的 append 函数中。

mcautocomplete 小部件位于 MVC 脚本文件夹下的自定义 js 文件中。

你能帮忙吗?

$.widget('custom.mcautocomplete', $.ui.autocomplete, {
    _renderMenu: function(ul, items) {
        var self = this,
            thead;

        if (this.options.showHeader) {
            table = $('<div class="ui-widget-header" style="width:100%"></div>');
            $.each(this.options.columns, function(index, item) {
                table.append('<span style="padding:0 4px;float:left;width:' + item.width + ';">' + item.name + '</span>');
            });
            table.append('<div style="clear: both;"></div>');
            ul.append(table);
        }
        $.each(items, function(index, item) {
            self._renderItem(ul, item);
        });
    },
    _renderItem: function(ul, item) {
        var t = '',
            result = '';

        $.each(this.options.columns, function(index, column) {
            t += '<span style="padding:0 4px;float:left;width:' + column.width + ';">' + item[column.valueField ? column.valueField : index] + '</span>'
        });

        result = $('<li></li>').data('item.autocomplete', item).append('<a class="mcacAnchor">' + t + '<div style="clear: both;"></div></a>').appendTo(ul);
        return result;
    }
});

其他发现:代码在 Fiddle 中有效 此代码在 Chorme 或 FireFox 中不会崩溃。

4

2 回答 2

3

我有同样的问题。jQuery UI 1.10 更改了自动竞争保存然后检索菜单中一行的项目数据的键。以前,键是“item.autotsomplete”,现在是“ui-autocomplete-item”。因此,找不到数据,无法显示。

在https://github.com/deaconsoftware/jQueryUI.MulticolumnAutocomplete获取最后一个版本的 MulticolumnAutocomplete

您也可以更改线路

result = $('<li></li>')
     .data('item.autocomplete', item)
     .append('<a class="mcacAnchor">' + t
              + '<div style="clear: both;"></div></a>').appendTo(ul);

result = $('<li></li>')
     .data('ui-autocomplete-item', item)
     .append('<a class="mcacAnchor">' + t
              + '<div style="clear: both;"></div></a>').appendTo(ul);
于 2013-05-24T08:58:55.477 回答
0

使用下面的 SQL 代码:

SELECT column-duplicate
    FROM TABLE 
GROUP BY column-duplicate
  HAVING COUNT(column-duplicate) > 1
于 2017-07-20T11:31:33.487 回答