小编Sat*_*nix的帖子

正确的jQuery语法动画"完整"回调

当jQuery动画完成时,我必须使用回调函数.我一直这样做:

.animate({ properties }, duration, function() { /* callback */ });
Run Code Online (Sandbox Code Playgroud)

但是,在这里提出问题时,我已经提出了一种具有不同语法的解决方案.

$('#redirectNoticeContainer').animate({ properties }, { queue: false, duration: 123 });
Run Code Online (Sandbox Code Playgroud)

我应该把回调函数放在哪里?这是我的猜测,但它不起作用.

$('#redirectNoticeContainer').animate({ properties }, { queue: false, duration: 123 }, function () {
console.log("ok");
setTimeout(function () { window.location.replace("/Account/Login"); }, 1200);
});
Run Code Online (Sandbox Code Playgroud)

动画有效.回调没有.我应该把它放在哪里?

jquery jquery-animate

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

为什么[1]不等于[1]?

在JavaScript中:

(1 == 1) === true;
(1 === 1) === true;
Run Code Online (Sandbox Code Playgroud)

var a = 1;
var b = [1];
(a == b) === true
Run Code Online (Sandbox Code Playgroud)

([1]==[1]) === false;
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我不知道

javascript

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

替换 Pandas 列中的所有值,无条件

我有一个 Pandas 数据框,其中一列充满了我想用另一个无条件替换的值。

出于这个问题的目的,让我们假设我不知道这个列有多长,我不想迭代它的值。

使用.replace()不合适,因为我不知道该列中有哪些值:我想无条件地替换所有值。

使用df.loc[<row selection>, <column selection>]是不合适的,因为没有行选择逻辑:我想要所有行并简单地写 True (如data.loc[True, 'ColumnName'] = new_value)返回KeyError(True,)。我试过了data.loc[1, 'ColumnName'] = new_value,它有效,但它看起来真的是一个糟糕的解决方案。

如果我知道len()data['ColumnName'],我可以创建一个大小的数组,充满了我的很多时间new_value,只是替换该数组列。用 10 行代码来做一些比需要 1 行代码更简单的事情(有条件地这样做):这也不行。

如何在 1 行中告诉 Pandas:中的所有值ColumnName都是 now new_value?我拒绝相信没有办法告诉 Pandas 不要用条件来打扰我。

python pandas

3
推荐指数
1
解决办法
5457
查看次数

process_template_response 在 Django 中不会被调用

views.py我使用render().

在 app -> middleware.py 中,我有以下代码:

from django.conf import settings


class NoTrackingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        return response

    def process_template_response(self, request, response):
        no_tracking = True if request.GET.get("NO_TRACKING", default=False) is not False else False
        pub_id = "PUBLISHER_TEST" if no_tracking is True else settings.WFF_PUB_ID
        response.context_data["no_tracking"] = no_tracking
        response.context_data["pub_id"] = pub_id
        return response
Run Code Online (Sandbox Code Playgroud)

settings.py我有:

MIDDLEWARE = [
...
    'app.middleware.NoTrackingMiddleware',
]
Run Code Online (Sandbox Code Playgroud)

然而,如果我在其中放置断点,process_template_response它就会被忽略并且pub_id始终为空。

为什么?

python django

3
推荐指数
1
解决办法
362
查看次数

Javascript - 等待图像加载

var l = false;
var l2 = false;

var imm = new Image();
imm.src = "b.png";

imm.onload = function(){
l = true;
}

var imm2 = new Image();
imm2.src = "c.png";

imm2.onload = function(){
l2 = true;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能知道这个JavaScript开始只有一个功能l,并l2是正确的?我应该设置一个循环来不断检查这两个变量吗?有没有更有效的方法?我不希望我的脚本在没有图像的情况下启动但是.onload我可以等待只加载一个图像而不是所有图像.谢谢你的帮助!

javascript image

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

Three.js画布渲染和透明度

请看看这个带有WebGL启用和禁用的演示.

当您在WebGL和画布渲染之间切换时(如果您有WebGL,它会在javascript检测时自动完成),只有线框的球体(左边的第一个)会发生变化.

启用WebGL后,您还可以看到球体背面的线框(由于它们具有非透明材质,因此隐藏在其他球体上的部分).

由于WebGL被禁用,您无法再欣赏透明度了.

我正在准备一个演示,我想为那些不支持WebGL的浏览器提供支持:提高透明度是至关重要的,因为我的想法完全基于它.我的演示文稿只有一个6面立方体,我想即使旧的CPU也应该没有问题在透明线框中呈现它.

three.js支持这个吗?有什么办法可以吗?我应该如何设置材料,以便即使使用画布渲染也能正常工作?

为了进一步证明我的观点,是第二个演示.在WebGL和画布之间切换时的问题相同.

当前的线框材质以这种方式声明:

new THREE.MeshBasicMaterial( { color: 0x00ee00, wireframe: true, transparent: true } ); 
Run Code Online (Sandbox Code Playgroud)

但只在WebGL中表现如预期.

Jsfiddle在这里

谢谢阅读!

ps我愿意采用任何替代Three.js,如果这不能做我需要的.我必须准备这个演示,但我没有自己的数学/几何知识,即使它像旋转三维立方体一样简单.

使用webgl:

在此输入图像描述 在此输入图像描述

用画布渲染:

在此输入图像描述 在此输入图像描述

canvas three.js

2
推荐指数
1
解决办法
6310
查看次数

Javascript重定向,打破了按钮

根据StackOverflow上的许多答案,location.replace(URL)您可以重定向用户,同时将页面保留在后退按钮历史记录中.

我想做相反的事情,所以我正在使用,location.href = URL但我仍然正在经历后退按钮的正确工作:这是为什么?

此外,location.replace()在Chrome和IE10中使用似乎也保留了后退按钮.请注意,我没有重定向,location.replace("http://...")但有location.replace("/page.html")

我想将我的用户从一个页面重定向到配置向导,而在向导内部,用户不应该在页面之间来回切换:相反,按"后退"应该将其重定向到原始页面,在向导之外.

一种解决方案是通过AJAX加载向导的页面并注入它们.html().我们已经以这种方式开发了大多数Web应用程序页面,但对于这个特定部分,服务器端开发人员忽略了AJAX解决方案(如图!).

我能做什么?

javascript jquery

2
推荐指数
1
解决办法
4716
查看次数

从String解析枚举不起作用

我有这样的public enum声明:

public enum States
    {
        SomeState,
        SomeOtherState
    }
Run Code Online (Sandbox Code Playgroud)

有一个myString可以代表上面任何"状态" 的任意字符串,我想写一个开关来检查它当前是哪一个.

这是我的尝试.

States state = Enum.Parse(States, myString, true);
            switch (state)
            {
                case States.SomeState:
                case States.SomeOtherState:
                    break;
                default:
                    break;
            }
Run Code Online (Sandbox Code Playgroud)

Enum.Parse()它的内部告诉我,参数State被用作一个类型,而不是作为一个变量.这不是正确的用法吗?应该接收的第一个参数Enum.Parse是Type enumType:为什么然后它告诉我它需要一个变量?


许多回复表明使用typeof.不幸的是,我已经尝试过,但由于我收到以下错误,我猜这是一个错误的想法.

Enum.Parse(typeof(States), myString, true);
Run Code Online (Sandbox Code Playgroud)

收益率:

不能隐式地将类型'对象'转换为'状态'.存在显式转换.

c# enums

2
推荐指数
1
解决办法
1349
查看次数

从 .loc 获取上一行

我有这个数据框date用作索引。

            close
date             
1999-11-18  44.00
1999-11-19  40.38
1999-11-22  44.00
1999-11-23  40.25
1999-11-24  41.06
Run Code Online (Sandbox Code Playgroud)

给定一个任意日期,我想检索位于该日期n之前或之后的行。

例如:

df.loc["1999-11-22"] # Gives third row
df.loc["1999-11-22"].previous_row(-2) # Should give row 1999-11-18
Run Code Online (Sandbox Code Playgroud)

显然previous_row不存在。我试过,shift(-2)但这似乎不起作用:date保持不变并close变成NaN.

df.loc["1999-11-22"].shift(-1)
close   NaN
Name: 1999-11-22 00:00:00, dtype: float64
Run Code Online (Sandbox Code Playgroud)

有没有一种不涉及克隆整个数据集的简单方法?

python pandas

2
推荐指数
1
解决办法
749
查看次数

Django ORM:两个日期之间的天数 timedelta 差异

在此输入图像描述

我有一个数据库表,表示与给定产品相关的费用。

这些费用,假设它们是每天的,有一个from_date(开始日期)和to_date(结束日期)。to_date可以为空,因为这些费用可能仍在继续。

给定 2 个 Pythondatetimestart_dateend_date我需要在 ORM 中生成 期间花费的总费用my_product

>>> start_date
datetime.datetime(2021, 8, 20, 0, 0)

>>> end_date
datetime.datetime(2021, 9, 21, 0, 0)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,预期输出应该是:

(-104 * (days between 08/20 and 08/25)) + (-113 * (days between 08/26 and 09/21)
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

(
my_product.income_streams
    .values("product")
    .filter(type=IncomeStream.Types.DAILY_EXPENSE)
    .filter(add_to_commission_basis=True)
    .annotate(period_expenses=Case(
        When(Q(from_date__lte=start_date) & Q(to_date__lte=end_date),
 then=ExpressionWrapper( start_date - F('to_date'), output_field=IntegerField()))
    ), # Other When cases...
)
) # Sum all period_expenses results …
Run Code Online (Sandbox Code Playgroud)

django django-orm

2
推荐指数
1
解决办法
2037
查看次数