2012-04-22 68 views
2

因此,我使用这个插件https://github.com/podio/jquery-mentions-input为我的评论系统,一切工作正常,但我想添加一个函数。这个功能是当我点击一个链接(回复)时,它会在textarea中光标所在的位置添加用户名的提及/标记。jquery提到输入:点击链接添加标签

有没有人有一个想法如何做到这一点?

我已经能够添加一个提到一次,我已经添加了一个标签(写@字符)。我发现textarea的初始化和点击链接时光标的位置有问题,但我似乎无法弄清楚如何完成这项工作。

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

// 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); 
    } 
}; 

,它被称为与这个小脚本是在同一页的文本区域上(值只是用于测试)

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

检测周围后,大问题看起来像,如果没有@ jquery代码没有找到标签的开头将在哪里开始,因此不会添加它。

我希望有人能帮助我,这开始让我疯狂!

感谢
里斯

+0

为什么不给@添加到文本?您可以检查@name是否已经存在,然后添加否则。 – rcdmk 2012-04-22 16:39:46

回答