Jquery 可拖动不适用于包含

标签 jquery css jquery-ui draggable containment

我的应用程序包含所有具有绝对 css 位置属性的 div。由于 draggable 占据相对位置,我需要用 margin-left 覆盖它并计算拖动的 div 的左值。如果未指定包含,它工作正常,

http://jsfiddle.net/W42A4/

<div id="main"><div id="draggable">Drag me</div></div>
$( "#draggable" ).draggable({
    axis:"x",
    containment: "#main",
    stop: function( e, ui ) {
        var el = $(this);
        var newLeft = $(el).css("left");
        var newmarginLeft = $(el).css("marginLeft");
        var totalmarginShift = parseFloat(newLeft) + parseFloat(newmarginLeft);
        el
            .css("marginLeft", totalmarginShift)
            .css("left", "")
            .css("top", "")
            .css("position", "absolute");       
    }
});

我需要包含来限制可拖动的 div 开箱即用,但可向左拖动不起作用。

fiddle :http://jsfiddle.net/2TpPS/

我找不到问题所在。谁能建议我一个解决方案?

最佳答案

只需删除您正在执行的所有不必要的边距重置。让你的 jQuery 简单:

$("#draggable").draggable({
    axis: "x",
    containment: "#main"
});

演示:http://jsfiddle.net/2TpPS/3/

如果您希望框能够在任何方向上拖动,请移除 axis: "x"

关于Jquery 可拖动不适用于包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835234/

相关文章:

html - 复选框上的宽度 100% 使其居中对齐。我该如何应对?

jquery - 是否显示 : none affects SEO on a navigation menu?

css - :hover is not working properly in IE9

css - jQuery 动画无意中还原

jquery - CSS渐变动画

javascript - jQuery scrollTop() 不适用于 Firefox 中的 'body' 元素

jquery - 展开 LI 项目并对其余项目重新排序

jquery - 调整大小时,文章不会停留在其他 sibling 之上

javascript - 类型错误 : Cannot set property 'innerHTML' of null with a correct script location and div ID

带有滚动条的 jquery ui 容器