小编R H*_*ill的帖子

HTML5拖放行为

我正在广泛使用HTML5本机拖放,它几乎完全表现自己,只有一个小例外.

当任何东西被拖到页面上时,我正在尝试突出显示我的下拉区域.我最初试图通过在文档体上放置jQuery侦听器来实现这一点,如下所示:

$("body").live('dragover',function(event){lightdz(event)});
$("body").live('dragexit dragleave drop',function(event){dimdz(event)});
Run Code Online (Sandbox Code Playgroud)

使用lightdz()和dimdz()更改页面上所有dropzones的背景颜色样式属性,使它们脱颖而出.这没用.每当拖动的对象进入页面上的子元素(如div容器)时,侦听器就会将其标记为dragleave事件并使dropzones变暗.

我通过将侦听器应用于页面上的所有可见元素而不仅仅是正文来解决这个问题.当它跨越一个元素和另一个元素之间的边界时,它们偶尔会出现轻微的可见闪烁,但它看起来很好.

无论如何,现在我已经改变了lightdz()和dimdz(),以便他们将快速的jQuery fadeTo()动画应用到所有非dropzones.这在它工作时看起来很棒,并且使用户非常清楚他们可以做什么,也不能放弃.麻烦的是当它在元素边界之间传递时,它应用淡入淡出动画.这是一个很多比的背景颜色偶尔闪烁更加明显,尤其是如果对象拖到多个边界的速度非常快,它会排队的动画和在页面淡入和淡出反复.

即使我不与fadeTo()动画打扰,只是更改不透明度,这是一个很大比背景色闪烁更加明显,因为整个页面的变化,而不只是悬浮窗元素.

有没有办法将整个页面作为单一元素引用以用于dragover和dragleave事件?如果失败了,有没有办法检测在浏览器窗口之外发生的丢弃?如果我跳过dragleave事件,它看起来很好,但如果任何对象被拖过浏览器窗口然后掉到它外面,整个页面都会褪色.

javascript jquery html5 drag-and-drop

13
推荐指数
1
解决办法
9514
查看次数

正则表达式:单独的可选捕获组,但集体至少必须存在一个

我已经用多个正则表达式实现了这一点,但是我想知道是否可以用一个正则表达式来实现。

我有一些表示持续时间的字符串。这些字符串的格式为“ 4d10h30m”,表示持续时间为四天,十小时和三十分钟。持续时间(天,小时或分钟)中的每个单位都是可选的,因此“ 4d”是有效字符串,“ 10h30m”也是有效字符串。

我想要的是一个正则表达式(JavaScript,如果有关系的话),它可以可靠地返回三个捕获组,每个捕获组包含一个单位的值。因此,在“ 4d10h30m”示例中,将正则表达式与此字符串匹配应返回[“ 4”,“ 10”,“ 30”]。如果缺少该单位,则它在元组中的位置可以包含几乎所有非零整数(0,“ 0”,null或空字符串都可以)。

我考虑过的两种方法如下:

/(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?/
Run Code Online (Sandbox Code Playgroud)

匹配空字符串;和以下内容的一些变化:

/((?:\d+[dhm]){1,3})/
Run Code Online (Sandbox Code Playgroud)

这使得仅捕获\ d +很尴尬,并且将返回不确定数量的捕获组。

我怀疑后者不是入门者。如果有一个正则表达式构造指定“这些组中的任何一个都是单独可选的,但总的来说,必须至少存在其中一个”,那么前者将起作用。在细胞自动机的限制下,这似乎是可行的,但我不知道它如何在正则表达式中实现,甚至可能实现。

编辑:

根据要求,提供一些示例输入及其输出:

2d1h5m # ["2","1","5"]
3h20m  # ["", "3", "20"]
4d10m  # ["4", "", "10"]
2d     # ["2", "", ""]
6h     # ["", "6", ""]
1x20y  # no match (invalid units)
2dh20m # no match (no units allowed without a value)
21020  # no match (no units)
1h2d5m # no match (disordered units)
xd5m   # no match (non-numeral value)
Run Code Online (Sandbox Code Playgroud)

regex

7
推荐指数
1
解决办法
2025
查看次数

将文件管理器中的文件路径视为Android意图

您知道,我已经检查过Android开发人员文档和OpenIntents,但没有找到答案.不过,我可能很容易错过一些东西.

是否存在在文件管理器中查看文件路径的意图操作?Android文件管理器应用程序之间似乎没有什么标准化方式.我不希望在执行intent时出现任何异常行为,如果没有安装文件管理器,它应该什么也不做,而不是尝试以其他方式操作文件路径.

我最初的研究表明这可能目前还不可能,但我想我会看到是否有人知道更好.他们通常这样做.

编辑澄清:我不是在找文件选择器.我已经有了一个文件路径,想要打开它以便在文件管理器/文件浏览器中浏览,当且仅当设备上安装了一个时.

java android android-intent

6
推荐指数
1
解决办法
8324
查看次数

如何检查具体方法是否遵守抽象方法的类型提示

这是一个由两部分组成的问题,但第二部分依赖于第一部分。

出于教育目的,我试图为实现一个抽象基类和测试套件(抽象代数的概念)。代数群定义的一部分相当于类型约束,我想在 ABC 上实现该类型约束,并且如果具体类上的方法不符合该约束,则会有一些抱怨。

我已经为逻辑下的布尔值组实现了第一遍实现and,但它至少有两个问题,我希望你能帮助我修复它。

from __future__ import annotations
from abc import ABC, abstractmethod


class AbsGroup(ABC):
    @abstractmethod
    def op(self, other: AbsGroup) -> AbsGroup:   # <-- Line-of-interest #1
        pass


class Bool(AbsGroup):

    def __init__(self, val="False"):

        if val not in ["True", "False"]:
            raise ValueError("Invalid Bool value %s" % val)

        self.val = val

    def op(self, other):
        """Logical AND"""
        if self.val == "True" and other.val == "True":  # <-- Line-of-interest #2
            return Bool("True")
        return Bool("False")

    def __eq__(self, other):
        return self.val == …
Run Code Online (Sandbox Code Playgroud)

python type-hinting abstract-algebra finite-group-theory mypy

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

矩阵中的前n行?

我试图弄清楚这样做的最好方法,理想情况是在Octave中,但我会把NumPy放在紧要关头.

假设我有一个axb矩阵M.如果我想要任何给定列中最大值的行索引,[x, xi] = max(M)将把这些索引作为行向量返回给我.

例如,如果M是:

1  3  5 
2  9  1
7  2  4
Run Code Online (Sandbox Code Playgroud)

上述将返回行向量[3 2 1]作为xi; 每行索引的向量,包含该列的最大值.这很好.我想要这个行矢量.

但是,如果我想要前n个这样的行向量怎么办?

[编辑解释这个更好]

对于上面的例子,第一个这样的矢量将是上面的[3, 2, 1](每个给定列具有最高值的行的索引).第二个这样的矢量将是[2 1 3](每列的第二高值的行的索引).

我可以迭代地做,但我的实际矩阵有几千行,所以这在计算上非常昂贵.我找不到任何明显的矩阵效用函数来帮助我实现这一目标.有什么建议?

matlab numpy octave

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