小编Noe*_*tin的帖子

$(document).ready()过早发射

所以,我需要知道一个元素的宽度与javascript,我的问题是函数触发太早,宽度在css被tottally应用时改变.据我所知,$(document).ready()函数在文档完成时被触发,但似乎没有那样工作.

无论如何,我确信使用代码我的问题将被理解(这是一个简化的例子):

<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <link href='http://fonts.googleapis.com/css?family=Parisienne' rel='stylesheet' type='text/css'>

    <style type="text/css">
        #target {
            font-family: 'Parisienne', cursive;
            float: left;
        }
    </style>
</head>
<body>
    <div id="target">Element</div>
</body>
</html>

<script type="text/javascript">
    $(document).ready(function(){
        console.debug($('#target').outerWidth());
        alert('hold on');
        console.debug($('#target').outerWidth());
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我想知道#target div的宽度,问题是在警报之前执行的代码提供的输出与之后的输出不同,可能是因为字体未完全加载并且它使用默认字体测量div.

它可以像我在Google Chrome中所期望的那样工作,但它不适用于IE和Firefox.

javascript jquery dom

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

正则表达式Lookbehind不适用于量词('+'或'*')

我试图在正则表达式中使用lookbehinds,它似乎不像我预期的那样工作.所以,这不是我的真实用法,但为了简化,我将举一个例子.想象一下,我想在"这是一个例子"的字符串上匹配"example".所以,根据我对外观的理解,这应该有效:

(?<=this\sis\san\s*?)example
Run Code Online (Sandbox Code Playgroud)

这应该做的是找到"这是一个",然后是空格字符,最后匹配单词"example".现在,它不起作用,我不明白为什么,在外观中使用'+'或'*'是不可能的?

我也试过这两个,他们工作正常,但不满足我的需求:

(?<=this\sis\san\s)example
this\sis\san\s*?example
Run Code Online (Sandbox Code Playgroud)

我正在使用此站点来测试我的正则表达式:http://gskinner.com/RegExr/

regex lookbehind

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

私有类作为公共方法的返回类型

为什么这个有效?

Foo.java

public class Foo {

    public Bar getBar() {
        return new Bar();
    }

    private class Bar {}

}
Run Code Online (Sandbox Code Playgroud)

如果Bar是私有的,那么这个类的用户将如何使用此方法?当然可以使用多态,但这不应该是无效的,并且声明应该指出这是返回一个对象吗?

java polymorphism access-modifiers

24
推荐指数
1
解决办法
3352
查看次数

数据库一对多,在Laravel中有两个外键字段

我一直在尝试定义一些数据库模式来使用laravel框架.我想模拟足球比赛.我想要做的第一步是定义实体关系图,但我发现这(我认为这将是非常微不足道的)在某些方面令人困惑.

首先,显而易见的方法是匹配与两个团队相关,团队与任意数量的匹配相关.所以,我们会有一个"多对多"的关系.

但是多对多关系的实现是有两个表和一个中间表来关联两个实体.我认为这太过分了,当我知道一个Match总是有两个团队而且只有两个列(local_id和visitant_id)和Teams表的外键就足够了.另外,我希望能够做到:

Match::find(1)->local() or Match::find(1)->visitant();
Run Code Online (Sandbox Code Playgroud)

因此,考虑到这一点,我正在实施"一对多"关系,但有了这个,我还有另一个问题.要检索团队已经玩过的所有比赛,我想这样做:

Team::find(1)->matches(); 
Run Code Online (Sandbox Code Playgroud)

但是我不能这样做,因为我只能在eloquent中定义matches()方法时指定一个键列(默认情况下它是team_id,但它应该是visitant_id和local_id).

database laravel eloquent

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

apksigner不接受密码

到目前为止,我一直用以下方法签署我的apks:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore {keystore-file} {apk-file} {keystore-alias}

但是我试图使用新的apksigner工具,我无法让它工作,因为它总是告诉我密码无效.这是不可能的,因为我已经多次完成,与jarsigner工作和apksigner没有.我尝试过的命令如下:

apksigner sign --ks {keystore-file} {apk-file}

apksigner sign --ks {keystore-file} --ks-key-alias {keystore-alias} {apk-file}

现在最怪异的部分出现在我创建一个新的密钥库来测试它时,并且使用这个新的密钥库它正在工作.所以我不明白有什么区别.这是从两者上调用"keytool -v -list -keystore {keystore-file}"获得的信息.

生产密钥库(我删除了一些文本以防这是危险的):

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: {keystore-alias}
Creation date: Apr 4, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN={removed-text}, OU={removed-text}, O={removed-text}, L=Unknown, ST=Unknown, C=Unknown
Issuer: CN={removed-text}, OU={removed-text}, O={removed-text}, L=Unknown, ST=Unknown, C=Unknown
Serial number: {removed-text}
Valid from: Mon Apr 04 12:39:50 …
Run Code Online (Sandbox Code Playgroud)

android sign apk

7
推荐指数
5
解决办法
6268
查看次数

CakePHP:使用多级可包含行为

我已经花了一些时间尝试在CakePHP中使用Containable Behavior,但我无法让它像我预期的那样工作.

我的应用程序是不同的,但为了简化,我将把这个例子.假设我有一个包含线程和活动的论坛,可以对活动进行评级.一般关系是:

论坛:hasMany [Thread]
主题:belongsTo [论坛],hasMany [活动]
活动:belongsTo [主题],hasMany [评分]
评分:belongsTo [活动]

我想要实现的是,使用find方法,获得在某个论坛上执行的所有评级.我认为应该做的是以下内容:

 $this->Rating->find('count', array(
    'contain' => array(
        'Activity' => array(
            'Thread'
        )
    ),
    'conditions' => array(
        'Thread.forum_id' => 1
    )
));
Run Code Online (Sandbox Code Playgroud)

但结果查询是:

SELECT COUNT(*) AS `count` FROM `ratings` AS `Rating` LEFT JOIN `activities` AS `Activity` ON (`Rating`.`activity_id` = `Activity`.`id`) WHERE `Thread`.`forum_id` = 1;
Run Code Online (Sandbox Code Playgroud)

我使用'join'选项完成了这个,但它更复杂,我必须在很多情况下使用这种动作.

所有用例相关的文件可以在这里找到:http://dl.dropbox.com/u/3285746/StackOverflow-ContainableBehavior.rar

谢谢

更新23/11/2011

在调查框架后,感谢Moz Morris和api55的答案,我找到了问题的根源.

基本的问题是,正如我所理解的CakePHP,我以为它每次都在使用连接进行查询.它不会这样做的事情,它将获得我正在寻找的结果的实际操作将是这样的:

SELECT * FROM Rating JOIN Activity...
SELECT * FROM Activity JOIN Thread...
SELECT * FROM Activity JOIN …
Run Code Online (Sandbox Code Playgroud)

php cakephp behavior

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

使用addEventListener冒泡和捕获

我最近发现了使用javascript在Bubbling和捕获DOM事件之间的区别.现在我明白它应该如何工作,但我发现了一个奇怪的情况,我想知道为什么会发生这种情况.

根据Quirks模式,事件传播开始于捕获外部div,到达底部然后冒泡到顶部.问题是我开始做一些测试.

在第一个,一切都按预期工作:

<div id="out">
    <div id="in">
        Click This!!
    </div>
</div>
<script type="text/javascript">
    document.getElementById('out').addEventListener('click', function(){
        alert('capture out');
    }, true);
    document.getElementById('in').addEventListener('click', function(){
        alert('capture in');
    }, true);
    document.getElementById('out').addEventListener('click', function(){
        alert('bubble out');
    }, false);
    document.getElementById('in').addEventListener('click', function(){
        alert('bubble in');
    }, false);
</script>
Run Code Online (Sandbox Code Playgroud)

如果单击文本,警报将"捕获","捕获","冒泡"和"冒泡".问题是使用以下代码:

<div id="out">
    <div id="in">
        Click This!!
    </div>
</div>
<script type="text/javascript">
    document.getElementById('out').addEventListener('click', function(){
        alert('bubble out');
    }, false);
    document.getElementById('in').addEventListener('click', function(){
        alert('bubble in');
    }, false);
    document.getElementById('out').addEventListener('click', function(){
        alert('capture out');
    }, true);
    document.getElementById('in').addEventListener('click', function(){
        alert('capture in');
    }, true);
</script>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,警报会"捕获","冒泡","捕获"和"冒出".如果你注意到,唯一的区别是在第二个上首先分配冒泡,但我不认为这应该有任何区别.

我用Firefox和Chrome试过这个,结果是一样的(据我所知,Internet Explorer没有处理捕获).

javascript dom event-handling event-bubbling event-capturing

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

样式化复合视图

我想创建一个复合项目并为它设置不同的样式,但是到目前为止我还没有看到如何使用单一样式实现它,我必须使用不同的样式.

为了说明我的问题,我将定义一个示例场景.想象一下,我有一个包含项目的列表,这些项目是用户,我有一个头像,一个用户名和一封电子邮件.我想在我的主题上为每个3种不同的风格设置风格.

我想要实现的目标:

(文件res/layout/item_user.xml,这将为ListView膨胀)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="wrap_content"
    style="@style/CustomStyleA">

    <ImageView
        style="avatarStyle"
        android:id="@+id/avatar"
        android:src="@drawable/avatar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        style="usernameStyle"
        android:id="@+id/username"
        android:text="Username"
        android:layout_toRightOf="@id/avatar"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        style="emailStyle"
        android:id="@+id/email"
        android:text="fakemail@mail.com"
        android:layout_toRightOf="@id/avatar"
        android:layout_below="@id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

(文件res/values/styles.xml)

<resources>

    <!-- Style A -->
    <style name="CustomStyleA">
        <item name="avatarStyle">@style/CustomStyleA.Avatar</item>
        <item name="usernameStyle">@style/CustomStyleA.Username</item>
        <item name="emailStyle">@style/CustomStyleA.Email</item>
    </style>

    <style name="CustomStyleA.Avatar">
        <!-- Here avatar specific styles -->
    </style>

    <style name="CustomStyleA.Username" parent="android:TextAppearance">
        <!-- Here username specific styles -->
    </style>

    <style name="CustomStyleA.Email" parent="android:TextAppearance">
        <!-- Here email specific styles -->
    </style>

    <!-- …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-styles

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

TensorFlow中图像张量的形状是什么

我最近开始学习Tensorflow,尤其是我想使用卷积神经网络进行图像分类。我一直在看官方存储库中的android演示,尤其是以下示例:https : //github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier。爪哇

在第145行,它使用图像的输入数据创建张量,如下所示:

inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);
Run Code Online (Sandbox Code Playgroud)

现在,我一直在尝试了解它的作用,最终调用了此方法:Tensor.create。我不明白的是为什么此张量的形状(由该函数的输入参数给出)(也称为“尺寸”)是{1, inputSize, inputSize, 3}。第二维和第三维是图像的宽度和高度,第四维是图像的RGB数据。但是为什么它的第一维为1?这个张量的形状不应该{inputSize, inputSize, 3}代替吗?我猜因为维数是1,所以没有区别,但是我想必须有这种表示法的原因,我不理解。

tensorflow tensor

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

哪个Stripe API密钥应用于单元测试

有一点背景:我开始使用Stripe在我的项目中实现付款,并且开始考虑如何编写测试。在学习了一些如何完成并考虑了“不要嘲笑自己不拥有的东西”的哲学之后,我决定为Stripe API实现一个包装器,现在有两种测试:针对我的测试应用程序模拟API包装器,并测试API包装器(我的运行频率不及我的应用程序)。这第二个测试真正调用了stripe,因此我需要提供Stripe API密钥。这就是我的问题所在。

问:我应该使用帐户的测试api密钥进行单元测试,还是可以使用通用的Stripe API密钥?作为他们的单元测试,我不希望他们将任何持久日志留给我的帐户,甚至不保留在测试仪表板上。

在google中搜索时,我发现以下api密钥:tGN0bIwXnHdwOa85VABjPdSn8nWY7G7I,与我帐户中的测试api密钥不同,它不遵循模式“ pk_test_ *”,但可以与Stripe一起使用并返回正确的响应。如果您想知道该密钥是从哪里获得的(是否应该发布),该密钥已由Stripe正式发布在博客文章存储库中,但我在文档或其他任何地方都找不到任何解释,因此这个问题。

testing stripe-payments

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