久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 contenteditable div 而不是 textarea 的自動完成功

autocomplete with contenteditable div instead of textarea doesn#39;t seem to work(使用 contenteditable div 而不是 textarea 的自動完成功能似乎不起作用)
本文介紹了使用 contenteditable div 而不是 textarea 的自動完成功能似乎不起作用的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在使用 Andrew Whitaker 的自動完成插件,在這個問題中也提到了:jquery 自動完成@mention

I'm using the autocomplete plugin by Andrew Whitaker, also referenced in this question: jquery autocomplete @mention

如果我使用 contenteditable div 而不是 textarea,這將不起作用.這是我的代碼:

This doesn't work if I use a contenteditable div instead of a textarea. Here's my code:

<div id="MyText" contenteditable="true"></div>?

$("#MyText").bind("keydown", function (event) {
        if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
            event.preventDefault();
        }
    }).autocomplete({
        minLength: 0,
        source: function (request, response) {
            var term = request.term,
                results = [];
            if (term.indexOf("@") >= 0) {
                term = extractLast(request.term);
                if (term.length > 0) {
                    results = $.ui.autocomplete.filter(tags, term);
                } else {
                    results = [startTyping];
                }
            }
            response(results);
        },
        focus: function () {
            return false;
        },
        select: function (event, ui) {
            if (ui.item.value !== startTyping) {
                var terms = this.value.split(' ');
                terms.pop();
                terms.push("@" + ui.item.value + "</span>");
                this.value = terms.join(" ");
            }
            return false;
        }
    }).data("autocomplete")._renderItem = function (ul, item) {
        if (item.label != startTyping) {
            return $("<li></li>")
                .data("item.autocomplete", item)
                .append("<a><div><img src='" + item.icon + "'/></div><div>" + item.label + "</div></div></a>")
                .appendTo(ul);
        } else {
            return $("<li></li>")
                .data("item.autocomplete", item)
                .append("<a>" + item.label + "</a>")
                .appendTo(ul);
        }
    };

有什么想法嗎?

推薦答案

input/textarea 和 contenteditable div 的主要區別在于您使用 .html() 方法(而不是 .value 或.val() 方法.

The main difference between an input/textarea and a contenteditable div is that you access the latter content with the .html() method (instead of the .value or .val() method.

這是自動完成代碼:

$("#MyText")
    .bind("keydown", function (event) {
        if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
            event.preventDefault();
        }
    })
    .autocomplete({
        minLength: 0,
        source: function (request, response) {
            var term = request.term,
                results = [];
            if (term.indexOf("@") >= 0) {
                term = extractLast(request.term);
                if (term.length > 0) {
                    results = $.ui.autocomplete.filter(tags, term);
                } else {
                    results = [startTyping];
                }
            }
            response(results);
        },
        focus: function () {
            return false;
        },
        select: function (event, ui) {
            if (ui.item.value !== startTyping) {
                var value = $(this).html();
                var terms = split(value);
                terms.pop();
                terms.push(ui.item.value);
                $(this).html(terms.join("@"));
                placeCaretAtEnd(this);
            }
            return false;
        }
    })
    .data("autocomplete")._renderItem = function (ul, item) {
        if (item.label != startTyping) {
            return $("<li></li>")
                .data("item.autocomplete", item)
                .append("<a><div>" + item.label + "</div></div></a>")
                .appendTo(ul);
        } else {
            return $("<li></li>")
                .data("item.autocomplete", item)
                .append("<a>" + item.label + "</a>")
                .appendTo(ul);
        }
    }
;

EDIT(2):這是 鏈接到jsfiddle

這篇關于使用 contenteditable div 而不是 textarea 的自動完成功能似乎不起作用的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

jQuery/JavaScript Library for avatar creation?(用于創建頭像的 jQuery/JavaScript 庫?)
How to do following mask input problem?(如何做以下掩碼輸入問題?)
Issues Setting Value/Label Using DropKick Javascript(使用 DropKick Javascript 設置值/標簽的問題)
how to unit-test private methods in jquery plugins?(如何對 jquery 插件中的私有方法進行單元測試?)
stellar.js - configuring offsets / aligning elements for a vertical scrolling website?(stellar.js - 為垂直滾動網站配置偏移量/對齊元素?)
jQuery masked input plugin. select all content when textbox receives focus(jQuery 屏蔽輸入插件.當文本框獲得焦點時選擇所有內容)
主站蜘蛛池模板: 操操日| av色站 | 亚洲国产成人精品女人久久久 | 二区三区在线观看 | 激情欧美一区二区三区 | 欧美亚洲第一区 | av在线一区二区三区 | 欧美xxxⅹ性欧美大片 | 成人三级网址 | 亚洲成人av| 国产av毛片 | 91免费电影| 欧美成人免费在线视频 | 成人免费一级视频 | 亚洲成人福利视频 | 91人人视频在线观看 | 毛色毛片免费看 | 久久久久国产精品午夜一区 | 99视频在线 | 中文字幕国产在线 | 亚洲精品一区中文字幕 | 精品网 | 国产精品久久久久久中文字 | 情侣酒店偷拍一区二区在线播放 | 97精品超碰一区二区三区 | 久久久久久综合 | 亚洲品质自拍视频 | 亚洲视频一区二区三区 | 天堂视频中文在线 | 96av麻豆蜜桃一区二区 | 国产精品久久 | 中文字幕亚洲一区 | 在线观看免费av网 | 欧美精品一区二区三区在线播放 | 亚洲精品自在在线观看 | 日韩精品在线看 | 欧美久久一区二区 | 成人av电影免费在线观看 | 成人一区二区在线 | 日韩久久精品视频 | 成人免费在线电影 |