2013-03-07 19 views
0

是的我有一箇舊的帖子,幾乎相同的問題,但是當我花時間寫這個自己而不是使用@Tim Downs代碼時,我比我更接近甚至認爲我會。現在唯一的問題是,每次我點擊按鈕將其添加另一塊可以這麼告訴你最好的辦法是去到bin自己,嘗試它.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 /編輯 – EasyBB 2013-03-07 23:01:03

回答

1

您分配一個click處理鼠標鬆開處理器,所以在每一個鼠標鬆開它會增加一個額外的點擊處理程序,所有這些都將在每次點擊按鈕時執行。

如果您需要重新定義現有的點擊處理程序你首先刪除與.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 2013-03-07 20:27:39

+0

嘿NNNNNN你能幫忙嗎?它現在不工作,我試圖執行它到我的網站http://jsbin.com/ogiyed/8/edit – EasyBB 2013-03-07 21:53:41

+0

上述斌的任何建議?我無法立即獲取報價按鈕。 – EasyBB 2013-03-08 17:55:30

相關問題