Добрый день.
Имеется такой код.
var edt,smile;
var prizsmile=0;
var settings;
$(document).ready(function (){
$.post('readsmile.php',{},function(data){
if (data){
smile=data;
edt = '<div id="main_div"><div class="veditor"><div class="editor" contenteditable="true"></div>'+
'<input style="cursor:pointer" type="submit" value="Отправить"/></div><textarea></textarea>'+
'<div><img style="cursor:pointer" title="Смайлы" onclick="show_smile()" src="slug_img/add.png"> '+
'<div id="foto" class="foto">'+
' <img style="cursor:pointer" title="Фото" src="slug_img/refresh.png"></div>'+
'<div class="smiles">'+smile+'</div></div>';
}
});
settings = {
url: "upload.php?user_id="+user_id,
dragDrop: false,
fileName: "UserFile",
allowedTypes:"jpeg,gif,bmp,png,jpg",
returnType:"json",
maxFileSize: 3000000,
showError: true,
onSuccess:function(files,data,xhr)
{
w_isx=data[1]; h_isx=data[2];
output_dir=data[3];
name=data[0];//files; //data.name;
koef=w_isx/h_isx;
pic=name;
var rand=Math.random();
var img = new Image();
pic=output_dir+pic+'?rand='+rand;
img.src=pic;
img.onload = function() {
document.execCommand('insertHTML', false,
'<br> <img pic='+pic+' width='+w_isx+' height='+h_isx+' src="'+pic+'"><br>');
$('.editor').focus();
}
},
onError: function (files, status, message)
{
alert('status='+status+'files='+files+'message='+message);
}
}
});
$(function() {
$('span[data-msg]').click(function() {
var $form = $(this).closest('form');
var p = $form.find('span[data-msg]');
if(!p.next('.boxedit').length) {
$('<div class="boxedit">').insertAfter(p)
.append(edt)
$form.find('textarea').attr('id', 'comment').hide().end()
$form.find('.smiles')
.on('click', 'img', function() {
document.execCommand('insertHTML', false,
' <img sml="'+this.getAttribute('sml')+'" src="'+this.src+'"> ');
$('.editor').focus()
})
.end()
.slideDown(300)
$form.find('.editor')[0].oninput = function() {
$(this).closest('form')
$form.find('textarea')
.val(this.innerHTML
.replace(/ /g,' ')
.replace(/<br>/g, '\n')
.replace(/<img[^>]+>/g, function(i) {
return i.match(/sml="([^"]+)"/)[1]
})
.replace(/<img[^>]+>/g, function(i) {
return i.match(/pic="([^"]+)"/)[1]}))
}
var uploadObj = $("#foto").uploadFile(settings);
}
})
});
И формы
<form autocomplete='off' id='form23' onsubmit='return send()' method='post'>
<p>
<div style='border: 1px solid #ccc;width:200px'>Текст для комментов</div><br>
<span id='23'></span>
<input type='hidden' name='formData' value='23'>
<span data-msg='123'><input id='add_comm' id-message='23' id-comment='23' type='button' value='23Добавить комментарий'/></span></p>
<br><br>
</form> <a href='group_room.php?id=1&group=2
&room=2'>
Название группы: <b></b></a>
<br/><a href='profile.php?id=2'>
<img src='photo/2/avatar/46056184.png ' style='width:100;height:120px;'><br/>Администратор: <b> </b></a><br/>Сообщение: фывафыв<br/>2016-11-12 15:52:20<br/>
<form autocomplete='off' id='form25' onsubmit='return send()' method='post'>
<p>
<div style='border: 1px solid #ccc;width:200px'>Текст для комментов</div><br>
<span id='25'></span>
<input type='hidden' name='formData' value='25'>
<span data-msg='123'><input id='add_comm' id-message='25' id-comment='25' type='button' value='25Добавить комментарий'/></span></p>
<br><br>
</form>
При клике по кнопке "Добавить комментарий" открывается textarea. У всех разные ID, но если у одной формы открыть, а потом у другой. Получается что 2 textarea открытых. Подскажите, как закрывать другие, когда открывается новая?