2013-03-07 1 views
0

Да, у меня была старая почта, почти такой же вопрос, но когда я потратил время и написал это сам, вместо того, чтобы использовать код @Tim Downs, я стал ближе, чем я думал. Только проблема в настоящее время является то, что каждый раз, когда я нажимаю кнопку добавляет еще один кусок так лучший способ показать вам это, перейдя в мусорную себя и пытается его.getSelection новый код дублирования плюс один щелчок

http://jsbin.com/ogiyed/1/edit

код здесь:

function getSelected() { 
    if(window.getSelection) { return window.getSelection(); } 
    else if(document.getSelection) { return document.getSelection(); } 
       else { 
         var selection = document.selection && document.selection.createRange(); 
         if(selection.text) { return selection.text; } 
      return false; 
     } 
     return false; 
    } 

$('.selections').not('.username').mouseup(function(e) { 
var uid = $('.selections').find('.username').text(); 
var selection = getSelected(); 
if(selection) { 
$('button').click(function() { 
var text = $('#textarea_content'); 
text.val(text.val()+'[quote="'+ uid +'"]'+ selection +'[/quote]'); 
}); 
} 
}); 

это почти работает как шарм;)

+0

Может кто-нибудь помочь с новейшей проблемой под рукой, поскольку @nnnnnn помог с несколькими сообщениями, теперь, когда я добавил код на свой сайт, он не добавит выделение. jsbin.com/ogiyed/ 8/edit – EasyBB

ответ

1

Вы назначаете обработчик щелчка внутри обработчик MouseUp, поэтому на каждом MouseUp он добавит дополнительный обработчик кликов, все из которых будут выполняться при каждом нажатии кнопки.

Если вам необходимо переопределить существующий обработчик щелчка вы сначала удалите предыдущую с .off('click'), а затем назначить новый:

$('button').off('click').click(function() { 
    var text = $('#textarea_content'); 
    text.val(text.val()+'[quote="'+ uid +'"]'+ selection +'[/quote]'); 
}); 

Изменено демо: http://jsbin.com/ogiyed/4/

(как в сторону: отступ ваш код!)

+0

Спасибо за сторона примечания, нормально, я заглядываю в ваш код, я уже смотрел на него и работал так, как я хочу. Просто наличие вопроса о том, выберете имя пользователя и область содержимого, которую он разместил, также, если вы просто выберите имя пользователя. Я только хочу, чтобы это работало в области .selections. – EasyBB

+0

Эй, NNNNNN вы можете помочь? Теперь он не работает, и я попытался реализовать его на своем сайте http://jsbin.com/ogiyed/8/edit – EasyBB

+0

Любые предложения по вышеуказанному бункеру? Я не могу заставить кнопку «quote» работать сейчас. – EasyBB

 Смежные вопросы

  • Нет связанных вопросов^_^