Проблема с onclick
Есть спрятанный div с name = "название команды" со списком игроков этой команды; есть input, в который вписывается название команды; и есть textarea, при фокусе на которую берется название команды из input-а, ищется div с таким именем, и в результате этот div показывается рядом.
Т.е. у нас появляется textarea, в которую нужно вписать авторов голов, а рядом div со списком игроков, при клике на имя - оно добавляетяся в textarea. Проблема в следующем: Фокусируюсь на textarea, появляется div, выбираю нужных игроков, div со списком игроков прячу нажатием на крестик в правом верхнем углу, но если второй раз сфокусироваться на textarea и нажать в div-e на имя игрока - оно добавляется дважды , если 3-ий раз фокусируешься на textarea - игрок появляется трижды и т.д. Подскажите, пожалуйста, в чем проблема!!! Генератор отчета о матче написал, все работает, но этот баг меня бесит... Вот листинг кода: CSS <style> .teams { border: 1px solid black; margin: 10px; text-align: left; width: 120px; padding-left: 10px; line-height: 80%; overflow: hidden; background: #DCDCDC; display: none; } .players { line-height:30%; margin-top: 0px; } .delete { cursor: pointer; width: 16px; height: 16px; background: url(btn-delete.gif) no-repeat center; position: absolute; top: 5px; right: 5px; } </style> HTML: <div class="teams players" name="Torino_FC"> <p>Buffon</p> <p>Viviano</p> <p>David Luiz</p> <p>Nesta</p> <p>ASTORI</p> <p>Abate</p> <p>El Shaarawy</p> <p>Cassano</p> <p>MUNIAIN</p> <span class="delete"></span> </div> <b>Хозяева</b> <input type="text" name="host"> <p><b>Авторы голов:</b></p> <textarea name="goal1" rows="5" cols="30"></textarea> и сам JS $('textarea[name=goal1]').focus(function(){ var coords = $(this).offset(); var len = $(this).innerWidth(); var div_team = $('input[name=host]').val(); div_team = div_team.replace(/\s/g, '_'); div_team = div_team.replace(/-/g, '_'); $('div[name='+div_team+']').css({ position: 'absolute', left: coords.left + len +'px', top: coords.top+'px', zIndex: 999, display: 'inline', opacity: '0.7' }); $('div[name='+div_team+'] p').click(function(){ var item = $(this).html(); if($('textarea[name=goal1]').val().length){ item = $('textarea[name=goal1]').val()+', '+item; } $('textarea[name=goal1]').val(item); return false; }); }); $('span.delete').click(function(){ $(this).parent().hide(); }); |
$('textarea[name="goal1"]').focus(function(){ var coords = $(this).offset(); var len = $(this).innerWidth(); var div_team = $('input[name="host"]').val(); div_team = div_team.replace(/\s/g, '_'); div_team = div_team.replace(/-/g, '_'); $('div[name^="'+div_team+'"]').css({ position: 'absolute', left: coords.left + len +'px', top: coords.top+'px', zIndex: 999, display: 'inline', opacity: '0.7' }); $('div[name='+div_team+'] p').die('click'); $('div[name='+div_team+'] p').live('click',function(){ var item = $(this).html(); if($('textarea[name=goal1]').val().length){ item = $('textarea[name=goal1]').val()+', '+item; } $('textarea[name=goal1]').val(item); return false; }); }); $('span.delete').click(function(){ $(this).parent().hide(); }); |
Большое спасибо!
|
Часовой пояс GMT +3, время: 18:40. |