Comment puis-je obtenir un changement de position de css pour prendre effet lors d'un gestionnaire d'événements de démarrage de l'élément Draggable JQuery UI?
-
12-09-2019 - |
Question
J'ai une situation étrange dans laquelle je dois modifier la position d'un élément draggable dès que l'utilisateur commence à glisser. Ainsi, pendant le gestionnaire d'événements de démarrage de l'élément draggable, je suis en train de régler la position. Il ne répond pas au changement de position, sauf - et est bizarre - je fais quelque chose pour provoquer une erreur javascript après que je change la position. Voici un exemple:
<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>
Comment puis-je faire légitimement redessiner se produire dans ce contexte? peau de JQuery () et show () ne fonctionnent pas et non plus ces méthodes .
La solution
Je pense que la liaison d'un événement mousedown vous obtiendrez ce que vous voulez
<script type="text/javascript">
$(function() {
$("#initialdragger").draggable();
$('#initialdragger').bind("mousedown", function(e) {
$(this).css('top', 400);
});
});
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow