久久久久久久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免费观看 | 第一区在线观看免费国语入口 | 少妇一区二区三区 | 在线中文字幕视频 | 国产精品一区二区无线 | 中文字幕精品一区二区三区精品 | 久久精品免费观看 | www..99re| 日本在线免费看最新的电影 | 精品久久99 | 91久久精品 | 国产精品福利网 | 一区在线观看视频 | 亚洲巨乳自拍在线视频 | 国产大学生情侣呻吟视频 | 黄色精品 | 国产精品久久久久久福利一牛影视 | 国产精品日日摸夜夜添夜夜av | 欧美成人精品一区二区三区 | 一区二区三区电影在线观看 | 国产精品日韩一区二区 | 中文字幕一区二区三区乱码在线 | 亚洲精品一区二区 | 一区二区三区四区视频 | 久久综合香蕉 | 国产精品久久国产精品 | 日本精品一区二区三区在线观看视频 | 色偷偷人人澡人人爽人人模 | 国产98色在线 | 日韩 | 一区二区高清 | 日韩精品久久久久久 | 国产精品免费观看视频 | 国产高清精品一区二区三区 | 成人精品国产免费网站 | 国产高清视频 | 欧美激情网站 | 国产男女视频 | 精品久久久久久亚洲综合网 | 91精品国产91久久久久久最新 | 欧美成视频在线观看 | 午夜视频在线观看视频 |