2016-08-18 63 views
0

我被困在這種情況下。每個textareas應該有自己的工具箱。現在只有一個是積極的(我希望超過2個區,使JavaScript的應該由ID識別)每個Textarea的輸入工具

我已經嘗試使用類似:

function getID(id) { 
     var $ta = id; } 

,但沒有運氣。

代碼:

HTML

<div id="1"> 
<input type="button" id="1" class="unselectable" unselectable="on" style="font-weight:bold" name="bold" value="B"> 
    <input type="button" id="1" class="unselectable" unselectable="on" style="font-style: italic;" name="italic" value="I"> 

    <br><textarea id="comment_1" name="comment" aria-required="true"></textarea> 
    </div> 

<div id="2"> 
<input type="button" id="2" class="unselectable" unselectable="on" style="font-weight:bold" name="bold" value="B"> 
    <input type="button" id="2" class="unselectable" unselectable="on" style="font-style: italic;" name="italic" value="I"> 

    <br><textarea id="comment_2" name="comment" aria-required="true"></textarea> 
    </div> 

的JavaScript:

$(document).ready(function() { 


      $("input").mousedown(function(e) { 
       var $ta = $("#comment_"+this.id); 

      var $startIndex = $("#startIndex"), $endIndex = $("#endIndex"); 

      function reportSelection() { 
       var sel = $ta.getSelection(); 
       $startIndex.text(sel.start); 
       $endIndex.text(sel.end); 
      } 

      $(document).on("selectionchange", reportSelection); 
      $ta.on("keyup input mouseup textInput", reportSelection); 

      $ta.focus(); 

      reportSelection(); 



       e.preventDefault(); 
       switch (this.name) { 


        case "bold": 
         $ta.surroundSelectedText("**", '**'); 
         break; 
        case "italic": 
         $ta.surroundSelectedText("_", '_'); 
         break; 
        case "quote": 
         $ta.surroundSelectedText("{", '}'); 
         break; 


       } 

       $ta.focus(); 

       // For IE, which always shifts the focus onto the button 
       window.setTimeout(function() { 
        $ta.focus(); 
       }, 0); 
      }); 

     }); 
+0

您使用id '評論' 兩個文本字段,這是不允許的。這也會導致每個按鈕都會寫入第一個字段。您需要在按鈕之後檢測文本字段,或者以某種方式標記按鈕,以便知道它們屬於哪個文本字段。 (數據屬性?) – Shilly

回答

0

屬性id應該是唯一的。如果沒有,但是,$('#comment')將僅選擇第一個包含id=comment的元素。在這種情況下,您可以使用class而不是id