Как я могу получить изменение позиции CSS, чтобы оно вступило в силу во время обработчика события запуска элемента JQuery Dragable? - PullRequest
1 голос
/ 09 июля 2009

У меня странная ситуация, когда мне нужно изменить положение перетаскиваемого элемента, как только пользователь начнет его перетаскивать. Итак, во время обработчика события запуска перетаскиваемого элемента я пытаюсь установить позицию. Он не реагирует на изменение позиции, если - и это странно - я что-то делаю, чтобы вызвать ошибку JavaScript после изменения позиции. Вот пример:


<html>
<head>
<title>Drag reposition test</title>

<script type="text/javascript" src="js/css_browser_selector.js"></script> 
<script type="text/javascript" src="development-bundle/jquery-1.3.2.js"></script> 
<script type="text/javascript" src="development-bundle/ui/jquery-ui-1.7.1.custom.js"></script> <!-- Includes JQuery UI Draggable. -->

<style type="text/css">
    #draggable { width: 150px; height: 150px; padding: 0.5em; }
</style>

<script type="text/javascript">

$(function() {
    $("#initialdragger").draggable({    
        start: function(e, ui) {
            $('#initialdragger').css('top', 400);
            x = y; // Javascript error, which weirdly causes a redraw.
        }
    });     
});
</script>

</head>

<body>

<div id="initialdragger" class="ui-widget-content" style="border-width: 1px; border-color: black; background-color: orange; width: 300px">
    <p>Drag me around</p>       
</div>

</body>
</html>

Как я могу законно вызвать перерисовку в этом контексте? Hide () и show () в JQuery не работают, а также эти методы не работают .

1 Ответ

1 голос
/ 09 июля 2009

Я думаю, что связывание события mousedown даст вам то, что вы хотите

<script type="text/javascript">
    $(function() {
        $("#initialdragger").draggable();
        $('#initialdragger').bind("mousedown", function(e) {
            $(this).css('top', 400);
        });
    });
</script>
...