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