Вставка в разные textarea
Всем доброго времени суток
Вот не как не могу сообразить, есть textearea, есть функция вставки bb кода в текстовое поле все работает все нормально ) А если например работать с двумя textarea то как узнать какую из них юзает пользователь чтобы именно в нее вставлять bb код? Мне бы просто понять саму суть "логику" работы |
Gertasreg,
понять бы Вашу логику :) Вы ходите сделать одну панель кнопок bb-кодов для двух текстарей? Не стоит. Сделайте для каждой свою, чтоб не запутывать пользователя. |
Ах точно я не совсем уточнил )
для каждой textarea свой блок ббкодов, вставляю после js
if ($(".textarea").length) {
$(".textarea").before(
'<ul class="redactor_toolbar">' +
'<li><a href="javascript:;" data-id="b" class="redactor_bold"></a></li>' +
'<li><a href="javascript:;" class="redactor_underlined"></a></li>' +
'<li><a href="javascript:;" class="redactor_italic"></a></li>' +
'<li><a href="javascript:;" class="redactor_image"></a></li>' +
'<li><a href="javascript:;" class="redactor_link"></a></li>' +
'<li><a href="javascript:;" class="redactor_video"></a></li>' +
'</ul>'
);
}
Проблема в том что я не могу понять в какую textarea вставлят ббкод если их 2 или больше |
помогите а
|
<style>
div.testblock {
width:200px;
margin: 10px;
float: left;
}
div.testblock>textarea {
width:200px;
height: 80px;
clear:booth;
}
</style>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<script>
window.onload = function () {
var inps = document.querySelectorAll("div.testblock>input"),
len = inps.length;
for (; inps[--len].setAttribute("onclick", "ins(this)"), len;);
ins = function (el) {
var par = el.parentNode || el.parentElement,
tar = par.children[0];
tar.innerHTML += "Yes ";
}
}
</script>
должно подтолкнуть на нахождение решения :victory: |
Цитата:
|
Gertasreg,
Отслеживать фокус на поле
<textarea id=1 onfocus="tst(this)"></textarea>
<textarea id=2 onfocus="tst(this)"></textarea>
<script>
function tst(area) {
alert(area.id)
}
</script>
|
kostyanet,
Deff, tabindex я запретил переходы onfocus, а что если пользователь сразу нажмет на ббкод |
Цитата:
Отслеживайте клик на обрамлении кнопок соответствуюшей линейке bb-кодов, определяя кликнутый селектор линейки или фокус техтареа - определяете приписку вставок
<script src="http://code.jquery.com/jquery-latest.js"></script>
<span class="wrp-area" style="сursor:pointer;float:left;text-align:center">Кнопки 1<br/><br/><textarea id=1></textarea></span><span class="wrp-area" style="сursor:pointer;float:left;text-align:center">Кнопки 2<br/><br/><textarea id=2></textarea></span>
<script>
$('.wrp-area,.wrp-area textarea').bind('focus click',function () {
var id = $(this).find('textarea')[0].id;
alert(id);
});
</script>
|
Попытка №2 :haha:
<style>
div.testblock {
width:200px;
margin: 10px;
float: left;
}
div.testblock>textarea {
width:200px;
height: 80px;
clear:booth;
}
</style>
<div class="testblock">
<textarea></textarea>
<div id="panel">
<input type="button" value="A" />
<input type="button" value="B" />
<input type="button" value="C" />
<input type="button" value="D" />
<input type="button" value="E" />
</div>
</div>
<div class="testblock">
<textarea></textarea>
</div>
<div class="testblock">
<textarea></textarea>
</div>
<script>
window.onload = function () {
var inps = document.querySelectorAll("div.testblock"),
len = inps.length;
for (; inps[--len].setAttribute("onclick", "edit(this)"), len;);
}
edit = function (el) {
el.appendChild(panel);
}
panel.onclick = function (e) {
e = e || window.event;
var el = e.target || e.srcElement;
if (el.tagName != "INPUT") return;
var par = this.parentNode || this.parentElement,
tar = par.children[0];
var myValue = el.value,
myValueLen = myValue.length;
if (document.selection) {
tar.focus();
var sel = document.selection.createRange();
sel.text = myValue;
tar.focus();
} else if (tar.selectionStart || tar.selectionStart == '0') {
var startPos = tar.selectionStart,
endPos = tar.selectionEnd,
scrollTop = tar.scrollTop;
tar.value = tar.value.substring(0, startPos) + myValue + tar.value.substring(endPos, tar.value.length);
tar.focus();
tar.selectionStart = startPos + myValueLen;
tar.selectionEnd = startPos + myValueLen;
tar.scrollTop = scrollTop;
} else {
tar.value += myValue;
tar.focus();
}
}
</script>
|
| Часовой пояс GMT +3, время: 22:55. |