2

我目前正在开发附加到关联目录应用程序的应用程序部件。

作为找人的方法之一,我已经实现了 jQuery UI 自动完成小部件 ( http://jqueryui.com/autocomplete/ ) 的自定义实现。

我的问题是,根据我们主页的设计,这个应用程序部分将被放置在哪里,这不是很高。

所以我的问题是,当下拉菜单出现时,对于自动完成,它的一部分会被切断。(见下图)

切断下拉框

我知道我确实有一些样式选项可以使其更小并显示更多,但无论哪种方式,我都想看看是否有更多的选择适合我。

我的第一个想法是我可以把它做成一个 Web 部件,但是我必须从应用程序中复制大量代码。

如果有任何想法,请告诉我!

谢谢你,埃里克

4

1 回答 1

2

将应用部件 elements.xml 中的高度设置为下拉菜单的高度。当它聚焦时,您运行一个脚本,将您的应用程序部分窗口调整为您的内容的高度。

我的应用程序部分执行异步调用,将数组呈现为应用程序部分中的行。在最后一行我运行下面的代码。

        var senderId;

        var params = document.URL.split("?")[1].split("&");
        for (var i = 0; i < params.length; i = i + 1) {
            var param = params[i].split("=");
            if (param[0].toLowerCase() == "senderid")
                senderId = decodeURIComponent(param[1]);
        }
        var step = 77,
            newHeight = 0,
            arrayLength = scope.items.length,
            resizeMessage = '<message senderId={Sender_ID}>resize({Width}, {Height})</message>';
        for (var x = 0; x < arrayLength; x = x + 1) {
            newHeight = newHeight + step;
        }
        if (senderId) {
            resizeMessage = resizeMessage.replace("{Sender_ID}", senderId);
            resizeMessage = resizeMessage.replace("{Height}", newHeight);
            resizeMessage = resizeMessage.replace("{Width}", "100%");

            window.parent.postMessage(resizeMessage, "*");
        } 

其他几个示例: 示例 1 示例 2

于 2014-07-10T12:54:57.797 回答