Невозможно перетащить клоны объектов (JQuery) - PullRequest
2 голосов
/ 17 декабря 2010

Когда я пытаюсь перетащить клонированный объект, он перетаскивает оригинальный объект. Как я могу это исправить?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type='text/javascript' src='js/jquery-1.4.4.min.js'></script>
<script type='text/javascript' src='js/jquery-ui-1.8.6.custom.min.js'></script>
<style type='text/css'
    #calendar {width: 900px; margin: 0 auto;}
    .container {position: absolute;    top: 0pt; left: 0pt;}
    .block {background-color: rgb(153, 255, 102); position: absolute; z-index: 8; width: 131px;    height: 50px;border: 1px solid;}
</style>
<script type='text/javascript'>    
    $(function() {
        $( ".block" ).draggable();
        selector = $('.special').clone(true).show()
        .css({left:'', top:'', position:'', borderWidth:'1px', marginBottom: '2px'})
        .find('span').text('Cloned').end().appendTo('.container');
    });
</script>
</head>
<body>
<div id='calendar'>    
    <div class="container">                
        <div class="block special" style="left: 278px; top: 300px;">
            <span>Original</span>
        </div>        
    </div>
</div>
</body>
</html>

1 Ответ

1 голос
/ 17 декабря 2010

Как вы обнаружили, .clone(true) в jQuery клонирует обработчики событий исходного элемента.

Чтобы обойти это, вы можете попробовать использовать функцию liveDraggable, определенную в этом ответе:

jQuery Drag and Drop с использованием живых событий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...