小编The*_*err的帖子

jQuery UI Sortable - 当页面可滚动时,Div不可拖动

提前谢谢你看看我的问题.

我正在创建一个网站,其中我有一个div列表,可以在Y轴上使用jQuery UI进行排序.
由于我希望使用触摸在移动设备上运行,因此我必须添加一些黑客以确保jQuery UI可用(因为它目前不支持触摸事件.).
这个hack被称为jQuery UI touch punch.
网站:jQuery UI触摸打孔.
GitHub:jQuery UI触摸打孔.

现在来了我的问题.有时列表变得如此之大,以至于网站将可滚动,当网站可滚动时,我无法正确拖动项目,因为当我尝试拖动div时,它只是滚动页面.我可以拖动它的唯一方法是当我双击该项目然后拖动它.

但这真的不是我想要的,因为使用和不自然真的很乏味.

现在的问题是,有没有办法在尝试从可拖动集中拖动其中一个项时禁用滚动.我尝试添加overflow-y: hidden点按或添加touch-action : none.不幸的是,这似乎不起作用.

总结
我所拥有的:我现在可以使用jQuery UI和jquery UI触摸打孔器通过触摸设备拖动和排序Div of List.
问题:列表将变得如此之大,以至于网站可以滚动,只需点按一下即可禁用拖动,我需要双击拖动项目.
我想要的是:即使我有滚动条,我也希望能够拖动项目(不需要双击).

我怎么能意识到这种行为/我应该从什么开始?任何提示和解决方案表示赞赏.


最后但并非最不重要的是这是我的FIDDLE.

编辑:

我正在使用:
IE 11
jQuery版本1.11.1
jQuery-ui版本1.11.4

html javascript jquery jquery-ui jquery-ui-touch-punch

7
推荐指数
2
解决办法
925
查看次数

使用正则表达式 javascript/jquery 仅允许以下格式的数字和点

我有一个输入字段,它应该由用户填充,只有数字和单点/逗号,并且只能采用以下格式。
这应该发生.on("input")意味着当用户键入时,它应该确保正确的输入格式。

错误的字符应替换为空白。

格式示例:
1.000
1.281
21212.000
21212.810
没有像这样的:
1.02.12

1919,201,00
两个数字块之间只有一个点。

这是我到目前为止所拥有的:正则

表达式 1:

$("body").on("input", "#testId", function(){
     this.value = this.value.replace(/[^0-9]/g,'');
});
Run Code Online (Sandbox Code Playgroud)

正则表达式 2:

$("body").on("input", "#testId", function(){
     this.value = this.value.replace(/[0-9]+\.+[0-9]{1,3}/g,'');
});
Run Code Online (Sandbox Code Playgroud)

正则表达式 3:

$("body").on("input", "#testId", function(){
     this.value = this.value.replace(/[0-9]+\.+[0-9]{1,3}/g,'');
});
Run Code Online (Sandbox Code Playgroud)

我想我的replace()方法有问题。不幸的是,他们都没有像我想要的那样工作。任何帮助表示赞赏。

这是小提琴

应该在 IE11 中工作

html javascript regex jquery

4
推荐指数
1
解决办法
6013
查看次数

我如何从 Primeng 的 Tabmenu 中获取所选项目

我有一个简单的 MenuItem 数组,用于从 Primeng 填充 Tabmenu 组件。这看起来像这样:

.ts 文件:

items = MenuItem[];
activeItem = MenuItem;

//constructor etc...

ngOnInit() {

    this.items = [
                {label: 'Homework', icon: 'fa-file-pdf-o'},
                {label: 'Movies', icon: 'fa-file-pdf-o'},
                {label: 'Games', icon: 'fa-file-pdf-o'},
                {label: 'Pictures', icon: 'fa-file-pdf-o'}
            ];
this.activeItem = this.items[2]
}
Run Code Online (Sandbox Code Playgroud)

.html 文件:

<p-tabMenu [model]="items" [activeItem]="activeItem"></p-tabMenu>
Run Code Online (Sandbox Code Playgroud)

我知道我可以tabmenu在 activeItem 的帮助下设置 Active 项,如下所示:

this.activeItem = this.items[2]
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我可以在点击时以某种方式检索 activeItem 吗?例如

<p-tabMenu [model]="items" [activeItem]="activeItem" (click)="getActiveItem(...)"></p-tabMenu>
Run Code Online (Sandbox Code Playgroud)

getActiveItem 方法:

getActiveItem(activeItem: MenuItem){
    this.activeItem = activeItem;
    console.log(activeItem);
    return this.activeItem;
  }
Run Code Online (Sandbox Code Playgroud)

PS从Primeng到TabMenu的链接。点击

typescript primeng angular angular5

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

为什么setTimeout会立即触发?

我在W3学校找到了这个 setTimeout()方法示例,并发现了一些我无法解释的内容.例子是:

myVar = setTimeout(alertFunc, 3000);
Run Code Online (Sandbox Code Playgroud)

......工作正常.但是当我改变它

myVar = setTimeout(alertFunc(), 3000);
Run Code Online (Sandbox Code Playgroud)

......警报立即触发.为什么?不应该是一样的吗?

javascript

-5
推荐指数
1
解决办法
134
查看次数