2012-04-22 2 views
2

Так что я использую этот плагин https://github.com/podio/jquery-mentions-input для моей системы комментариев, все работает нормально, но я хотел бы добавить функцию. Эта функция будет заключаться в том, что когда я нажимаю ссылку (Reply), она добавит упоминание/тег имени пользователя в текстовое поле в том месте, где находится курсор.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

ответ