小编tom*_*ton的帖子

可移动元素隐藏在容器外部

使用jQuery UI,我试图创建一个带有两个可滚动容器的接口,每个容器包含许多可拖动元素.用户可以将元素从一个容器拖到另一个容器.

删除功能不是问题.删除后,元素将被分离并在其新父项下的正确位置重新创建.

我的问题是,当容器已position:relative;应用时,draggable元素无法显示在其容器外部,因此在拖动时,元素在移出容器边界时将消失.

此默认行为是有意义的,因为通常用户希望在其容器内拖动元素.作为一种解决方法,我假设解决方案是使用draggable属性'appendTo',我认为它会将元素移出容器外,但不幸的是,这似乎没有任何影响.


DOM :(每个视图都是可滚动的,每个容器都有位置:相对,并且可以保存所有元素所需的大小)

BODY
    VIEW 1
        CONTAINER
            DRAGGABLE ELEMENTS
    VIEW 2
        CONTAINER
            DRAGGABLE ELEMENTS
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$('div.card').draggable({
    appendTo: 'body',
    scroll: false //stops scrolling container when moved outside boundaries
});
Run Code Online (Sandbox Code Playgroud)

有关问题的简化说明,请参阅JSFiddle.我不想用可放置的代码来膨胀示例,所以这只是说明了拖动问题.http://jsfiddle.net/Em7Ak/


提前谢谢了.

jquery-ui jquery-ui-draggable

24
推荐指数
3
解决办法
2万
查看次数

使用参数添加和删除事件侦听器

我正在编写一个vanilla JavaScript工具,在启用时会向传递给它的每个元素添加事件侦听器.

我想做这样的事情:

var do_something = function (obj) {
        // do something
    };

for (var i = 0; i < arr.length; i++) {
    arr[i].el.addEventListener('click', do_something(arr[i]));
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为据我所知,在添加事件监听器时,参数只能传递给匿名函数:

for (var i = 0; i < arr.length; i++) {
    arr[i].el.addEventListener('click', function (arr[i]) {
        // do something
    });
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要能够在禁用该工具时删除事件侦听器,但我认为不可能删除具有匿名函数的事件侦听器.

for (var i = 0; i < arr.length; i++) {
    arr[i].el.removeEventListener('click', do_something);
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以轻松地使用jQuery来解决我的问题,但我正在尝试最小化依赖关系.jQuery必须以某种方式解决这个问题,但代码有点像丛林!

javascript dom dom-events

9
推荐指数
1
解决办法
1万
查看次数

我应该如何使用Gulp创建完整的构建?

刚学习Gulp.看起来很棒,但我找不到任何有关如何使用它进行完整分发的信息.


假设我想使用Gulp来连接和缩小我的CSS和JS,并优化我的图像.

这样做我改变了我的构建目录中JS脚本的位置(例如,从bower_components/jquery/dist/jquery.jsjs/jquery.js).

  1. 如何自动更新构建HTML/PHP文档以引用正确的文件?这样做的标准方法是什么?

  2. 如何复制其余的项目文件?.这些文件需要作为发布的一部分包含在内,例如HTML,PHP,各种txt,JSON和各种其他文件.当我每次使用Gulp进行干净的构建时,我不必复制和粘贴我的开发目录中的那些?


很抱歉询问可能非常难以解决的问题.我可能会使用除Gulp以外的其他东西来管理这些,但我不知道从哪里开始.

提前谢谢了.

gulp

8
推荐指数
1
解决办法
5981
查看次数