Добрый день. Имеется такой код. Код (Javascript): 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); } }) }); И формы HTML: <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 открытых. Подскажите, как закрывать другие, когда открывается новая?
@denis01 Код (Javascript): for ( prop in props ) { value = props[ prop ]; if ( rfxtypes.exec( value ) ) { delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { continue; } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); } } Это?
@denis01, спасибо, но мне необходимо именно на моем примере. Код (Javascript): $form.find('textarea').attr('id', 'comment').hide().end() Ведь должны закрываться.