【问题标题】:Jquery mention input : add tag on click of a linkJquery提及输入:点击链接添加标签
【发布时间】:2012-05-03 10:19:43
【问题描述】:

所以我将这个插件https://github.com/podio/jquery-mentions-input 用于我的评论系统,一切正常,但我想添加一个功能。这个功能是当我点击一个链接(回复)时,它会在光标所在位置的文本区域中添加用户名的提及/标签。

有人知道怎么做吗?

一旦我已经添加了一个标签(写@字符),我就可以添加一个提及。我发现 textarea 的初始化和单击链接时光标的位置存在问题,但我似乎无法弄清楚如何使其工作。

我在我的 jquery 文件中添加了一个 addReply 函数。

// Public methods
return {
  init : function (options) {
    settings = options;

    initTextarea();
    initAutocomplete();
    initMentionsOverlay();
  },

  val : function (callback) {
    if (!_.isFunction(callback)) {
      return;
    }

    var value = mentionsCollection.length ? elmInputBox.data('messageText') : getInputBoxValue();
    callback.call(this, value);
  },

    addReply : function (id, text, type) {
       initTextarea();
       initAutocomplete();
       initMentionsOverlay();
       addMention(text, id, type);
    },

  reset : function () {
    elmInputBox.val('');
    mentionsCollection = [];
    updateValues();
  },

  getMentions : function (callback) {
    if (!_.isFunction(callback)) {
      return;
    }

    callback.call(this, mentionsCollection);
  }
};

并使用与 textarea 在同一页面上的这个小脚本调用它(值仅用于测试)

$('.add-mention').click(function() {
  $('textarea.mention').mentionsInput('addReply',('Joris', 9, 'contact') );
});

经过测试,大问题看起来像没有@的jquery代码找不到标签的开头从哪里开始,因此没有添加它。

我希望有人可以帮助我,它开始让我发疯了!!!

谢谢
乔里斯

【问题讨论】:

  • 在调用函数之前为什么不在文本中加上@呢?您可以检查@name 是否已经存在,如果不存在则添加。

标签: jquery input autocomplete tagging comments


【解决方案1】:

Joris - 如果您还没有弄清楚这个,请看看这个 - https://github.com/podio/jquery-mentions-input/pull/37

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多