在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)
但这会导致元素立即隐藏.
有没有人有这个问题的解决方案?
假设我有两个名为Product
and的模型,Image
它们由Product hasMany Image
and 链接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的错误吗?如果是这样,我应该如何将每个图像的图像数量限制为 …
我正在使用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)
你可以在这个小提琴中看到.
但我的问题是,新系列与第一批系列的颜色完全不同.
我不能简单地替换数据,因为系列的数量可能会改变,所以我必须删除所有系列并添加新系列.
如何归档新系列的样式与替换的系列相似?(在我的小提琴中,新系列应该有浅蓝色,深蓝色和一些第三种颜色.)
我创建了一些测试用例来澄清我面临的问题.顶部图表是它应该如何看,底部图表是它的实际外观.我希望他们是一样的!
解决方案需要适用于所有这些情况!
我在本地主机的 IIS 上有一个 wordpress 站点。为了演示该站点,我使用ngrok使该站点可用。
在本地主机上查看站点时,一切看起来都很好。但是,当我通过 ngrok 隧道远程查看站点时,内容会出现,但所有样式和主题元素都丢失了。
我不确定哪些代码、配置或文档有助于解决这个问题。
知道为什么会发生这种情况吗?
我目前正在为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)
在编辑帖子时都会删除标签框,但菜单中的链接仍然指向标签列表!
假设我想将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) 我希望在用户注销时显示弹出消息,所以我使用
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) 在处理中,我定义了以下类:
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}
,这肯定不是我打算做的.
所以我的问题是:如何正确地将数组传递给类的构造函数而不必在之前声明数组?它甚至可能吗?
谢谢您的回答!
我坚持使用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和sdl显示图像.这就是我所看到的:
顶部和结构轮廓周围有一条灰线.这不应该存在.这是我想要显示的图像:
图像是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) javascript ×4
jquery ×3
php ×3
c++ ×2
opengl ×2
wordpress ×2
arrays ×1
cakephp ×1
cakephp-3.0 ×1
freetype ×1
highcharts ×1
iframe ×1
iis ×1
java ×1
localhost ×1
ngrok ×1
orm ×1
processing ×1
sdl ×1
tags ×1