Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.08.2012, 15:11
Новичок на форуме
Отправить личное сообщение для Bubble Посмотреть профиль Найти все сообщения от Bubble
 
Регистрация: 02.08.2012
Сообщений: 6

Проблема с 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();
    });
Ответить с цитированием
  #2 (permalink)  
Старый 25.08.2012, 15:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

$('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();
    });
Ответить с цитированием
  #3 (permalink)  
Старый 25.08.2012, 15:51
Новичок на форуме
Отправить личное сообщение для Bubble Посмотреть профиль Найти все сообщения от Bubble
 
Регистрация: 02.08.2012
Сообщений: 6

Большое спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с onclick sitebuilder Общие вопросы Javascript 3 18.06.2012 11:31
Проблема с обработкой OnClick suslik90 Events/DOM/Window 1 11.05.2012 21:09
Проблема с onclick Teledrug Events/DOM/Window 2 19.05.2010 07:52
проблема с onClick 3BEPb Events/DOM/Window 4 22.12.2009 20:46
Проблема с onclick Reflexion Events/DOM/Window 9 25.10.2009 22:54