小编Lar*_*ert的帖子

在click事件中分配click-event-handler

在jQuery中处理click事件时遇到了一些奇怪的行为.

看看这个小提琴

$('#button').click(function() {
    $(document).one('click', function() {
        alert('clicked');
    });
});
Run Code Online (Sandbox Code Playgroud)

此代码将click-event-handler绑定到某个按钮.单击此链接时,应在文档中添加事件处理程序,并在下次单击文档时发出"单击"警报.

但是当点击此按钮时,"点击"会立即收到警报而无需再次点击.显然,将新处理程序绑定到文档的click-event会冒泡到文档并立即运行刚刚分配的hndler.

这种行为似乎非常违反直觉.我的目的是在点击按钮时显示一个元素,并在点击该元素外部时再次隐藏它.

$('#button').click(function() {
    // Show some element

    $(document).one('click', function() {
        // Hide the element again
    });
});
Run Code Online (Sandbox Code Playgroud)

但这会导致元素立即隐藏.

有没有人有这个问题的解决方案?

javascript jquery

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

在包含的模型上使用limit()

代码

假设我有两个名为Productand的模型,Image它们由Product hasMany Imageand 链接Image belongsTo Product.

现在,假设我想要获取每个第一张图片的所有产品.我会用这个代码:

$this->Products->find('all')
    ->contain([
        'Images' => function($q) {
            return $q
                ->order('created ASC')
                ->limit(1);
        }
    ]);
Run Code Online (Sandbox Code Playgroud)

看起来对,对吧?除了现在只有一个产品包含图像,但实际上每个产品至少包含一个图像(如果查询没有限制).

生成的查询

问题似乎是有限制的,因为这会产生以下两个查询(例如):

SELECT
    Products.id AS `Products__id`,
FROM
    products Products
Run Code Online (Sandbox Code Playgroud)

SELECT
    Images.id AS `Images__id`,
    Images.product_id AS `Images__product_id`,
    Images.created AS `Images__created`
FROM
    images Images
WHERE
    Images.product_id in (1,2,3,4,5)
ORDER BY
    created ASC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

查看第二个查询,很明显这将始终只生成一个图像.

问题

但是,当我打电话时,我原本期望Cake ORM将图像限制为每个产品 1 limit(1).

我的问题:这是我使用ORM的错误吗?如果是这样,我应该如何每个图像的图像数量限制为 …

orm cakephp cakephp-3.0

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

如何重置Highcharts中为系列提供的样式?

我正在使用Highcharts为我的网站渲染一些图表.有时,我需要从图表中删除所有系列并向图表添加一些新系列,因为我通过ajax请求了一些新数据.

我目前正在这样做:

var chart = $('#container').highcharts();
while(chart.series.length) {
    chart.series[0].remove();
}

chart.addSeries({
    data: [144.0, 176.0, 29.9, 71.5, 106.4, 129.2, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
});
chart.addSeries({
    data: [129.2, 106.4, 135.6, 95.6, 54.4, 148.5, 144.0, 176.0, 29.9, 71.5, 216.4, 194.1]
});
chart.addSeries({
    data: [106.4, 129.2, 135.6, 148.5, 144.0, 176.0, 29.9, 71.5, 194.1, 95.6, 54.4, 216.4]
});
Run Code Online (Sandbox Code Playgroud)

你可以在这个小提琴中看到.

但我的问题是,新系列与第一批系列的颜色完全不同.

我不能简单地替换数据,因为系列的数量可能会改变,所以我必须删除所有系列并添加新系列.

如何归档新系列的样式与替换的系列相似?(在我的小提琴中,新系列应该有浅蓝色,深蓝色和一些第三种颜色.)

测试用例

我创建了一些测试用例来澄清我面临的问题.顶部图表是它应该如何看,底部图表是它的实际外观.我希望他们是一样的!

  1. 删除两个系列并添加两个系列
  2. 删除两个系列并添加三个系列
  3. 删除三个系列并添加两个系列

解决方案需要适用于所有这些情况!

javascript jquery highcharts

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

通过 ngrok 隧道剥离 wordpress 网站的样式和主题

我在本地主机的 IIS 上有一个 wordpress 站点。为了演示该站点,我使用ngrok使该站点可用。

在本地主机上查看站点时,一切看起来都很好。但是,当我通过 ngrok 隧道远程查看站点时,内容会出现,但所有样式和主题元素都丢失了。

我不确定哪些代码、配置或文档有助于解决这个问题。

知道为什么会发生这种情况吗?

php iis wordpress localhost ngrok

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

Wordpress:仅为帖子禁用标记

我目前正在为Wordpress 3.8.1开发一个主题.因为我的主题不会显示任何标签,所以我想要禁用它们(仅限帖子,而不是自定义帖子类型).但是我该怎么做?我试过这个,但显然,它什么也没做:

register_taxonomy('post_tag', null);
Run Code Online (Sandbox Code Playgroud)

要明确:我不只是想隐藏模板文件中的标签,但我想完全禁用它们,所以在后端,帖子下没有标签的菜单项.

它甚至可能吗?希望如此.谢谢你的帮助!

更新

此外,我尝试了以下,没有任何影响:

register_taxonomy('post_tag', array());
Run Code Online (Sandbox Code Playgroud)

global $wp_taxonomies;
$taxonomy = 'post_tag';
if(taxonomy_exists($taxonomy))
    unset($wp_taxonomies[$taxonomy]);
Run Code Online (Sandbox Code Playgroud)

在编辑帖子时都会删除标签框,但菜单中的链接仍然指向标签列表!

php tags wordpress

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

如果load-event已经触发,则将load-event绑定到iframe或run function

假设我想将load-event绑定到iframe:

var callback = function() {
    //Loaded
};
$('iframe').one('load', callback);
Run Code Online (Sandbox Code Playgroud)

这很好用,除了我不能确定iframe尚未加载.在这种情况下,load-event已经触发,我的函数永远不会运行.

如何检查iframe是否已加载?

var callback = function() {
    //Loaded
};
if(iframe already loaded) {
    callback();
} else {
    $('iframe').one('load', callback);
}
Run Code Online (Sandbox Code Playgroud)

javascript iframe jquery event-handling

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

php echo javascript alert()无效

我希望在用户注销时显示弹出消息,所以我使用

echo "<script>alert(\"You are logged out\");</script>";
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

以下是我的编码.我的编码有什么逻辑问题吗?

<?php
session_start();
if(isset($_SESSION['Username']) == "admin")
{
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
@import "../CSS/Style.css";
@import "../CSS/Admin.css";
</style>
<title>Admin Home Page</title>
</head>

<body>
<div class="body"></div>
<?php
    if(isset($_GET['id']) == "logout")
    {
        session_destroy();
        echo "<script>alert(\"You are logged out\");</script>";
        header("Location: ..\Main.php");
    }
    else
    {
?>
<div class="menu">
    <a href="ManageStaff.php">Manage Staff</a>
</div>

<div class="menu2">
    <a href="ManageAccount.php">Manage Account</a>
</div>

<div class="logout">
    <a href="AdminHomePage.php?id=logout">Logout</a>
</div>
<?php
    }
}
else
{
?>
<center>
<p style="font-size:50px; font-weight:bold">Access Denied</p> …
Run Code Online (Sandbox Code Playgroud)

javascript php

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

将数组传递给构造函数而不声明它?

在处理中,我定义了以下类:

class SomeClass {
    SomeClass(int[] someArray) {
        println(someArray);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想创建该类的实例,但是我无法将数组传递给构造函数:

SomeClass myVar = new SomeClass({
    12, 10
});
Run Code Online (Sandbox Code Playgroud)

但这总是给我一个错误"意外的令牌:{".所以显然"动态"定义阵列是行不通的.

但是,这将有效:

int[] dummy = {12, 10};

SomeClass myVar = new SomeClass(dummy);
Run Code Online (Sandbox Code Playgroud)

但是我觉得在对象之外声明这个数组是相当愚蠢的,因为这会在创建多个对象时带来各种麻烦:

int[] dummy = {12, 10};
SomeClass myVar = new SomeClass(dummy);

dummy = {0, 100};
SomeClass myVar2 = new SomeClass(dummy);
Run Code Online (Sandbox Code Playgroud)

该类的两个实例现在都引用了相同的数组{0, 100},这肯定不是我打算做的.

所以我的问题是:如何正确地将数组传递给类的构造函数而不必在之前声明数组?它甚至可能吗?

谢谢您的回答!

java arrays processing

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

FreeType如何渲染像ääö这样的特殊字符?

我坚持使用FreeType渲染文本.特别是非ascii chars让我头疼.经过一些试验和错误,我设法渲染了一些文字,但我的变音符号没有显示:

std::string text = "Hauptmenü";
for(std::string::iterator it = text.begin(); it != text.end(); ++it) {
    std::cout << *it;

    FT_Face face = loadFace(faceName);

    FT_Set_Pixel_Sizes(face, 0, fontSize);

    if(FT_Load_Char(face, *it, FT_LOAD_DEFAULT)) {
        std::cout << "Could not load character '" << character << "'" << std::endl;
    }

    FT_Get_Glyph(face->glyph, &glyph);
    FT_Glyph_To_Bitmap(&glyph, FT_RENDER_MODE_NORMAL, 0, 1);

    //render the glyphs to screen and so on
}
Run Code Online (Sandbox Code Playgroud)

加载字体,获取字形等基本上是有效的,但是'ü'不会被渲染.这是我的输出看起来像:

除

除"ü"之外的所有字符都会显示出来!

控制台输出

这最终会出现在我的控制台中,所以我猜我对字符串的迭代肯定是错的,因为'ü'被分成两个字符.我得到的最后两个字符的字形位图都是宽度和高度0.

我怎样才能解决这个问题?

c++ opengl freetype

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

图像显示错误

我看到一些奇怪的错误在c ++中用opengl和sdl显示图像.这就是我所看到的:

顶部和结构轮廓周围有一条灰线.

顶部和结构轮廓周围有一条灰线.这不应该存在.这是我想要显示的图像:

图像是png,黑色背景通过opengl添加

图像是png,黑色背景是通过OpenGL添加的.

我在下面发布了所有相关代码,也许任何人都可以告诉我为什么会出现这些错误?

此功能用于显示图像:

renderTexture("modules/solarpanel/base.png", 10, 10, 1.0);
Run Code Online (Sandbox Code Playgroud)

这是renderTexture函数:

struct AbstTexture {
    GLuint texture;
    int w;
    int h;
};

void renderTexture(std::string textureFile, int x, int y, float zoom) {
    AbstTexture texture = loadTexture(textureFile);

    glUseProgram(PROGRAM_SIMPLE_TEXTURE);

    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D, texture.texture);

    glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);

    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);


    GLfloat box[] = {
        (float) x, (float) y, 0, 0,
        (float) x + (float) texture.w * zoom, (float) y, 1, 0,
        (float) x, (float) y + (float) texture.h * zoom, 0, 1, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl sdl

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