小编gra*_*tur的帖子

悬停在拉斐尔圆圈上时显示文字

我正在尝试使用jQuery和RaphaelJS:

  • 创建圈子
  • 将鼠标悬停在圆圈上时显示一些信息(并在未悬停在其上时隐藏信息)

但是,我无法正确显示信息......它似乎显示然后立即隐藏.这是我正在使用的代码的简化测试版本:

<!DOCTYPE html>
<html>

<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="raphael.js"></script>
<script type="text/javascript">

$(function() {  
var paper = new Raphael("canvas_container", 300, 150);
paper.circle(50, 75, 30);
paper.circle(150, 75, 30);

$("circle").each(function(i) {
    $(this).mouseover(function() { 
        $("#test").append("<p>MouseOver</p>");
    });
    $(this).mouseout(function() { 
        $("#test").append("<p>MouseOut</p>");
    });
});
});
</script>
</head>

<body>
<div id="canvas_container"></div>  
<div id="test"></div>
</body>

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

在这个例子中,一旦我进入一个圆圈,立即显示"MouseOver"和"MouseOut".我不确定我是否使用了错误的事件,或者拉斐尔是否有一些时髦的事情.

我是一个完整的Javascript noob,所以如果我只是以错误的方式做所有事情,那么我们非常感谢指针.

javascript jquery raphael

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

安全地向Array类添加`sum`方法

我在我的代码中进行了大量的数组求和,所以我想要修补Array类以包含sum方法(它对数组中的所有元素求和):

class Array
  def sum
    self.inject{ |s, t| s + t }
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,我以前从来没有在共享代码中修补任何东西,我怀疑这是一个"安全"的事情(例如,也许其他人已经定义了一个sum方法Array).

那么什么是能够在我正在编写的代码中对数组求和的最佳方法,而不必arr.inject{ |s, t| s + t }每次都写入?猴子补丁有安全的方法吗?我能以某种方式使用模块吗?或者我应该在某个地方编写一个辅助方法,它接收一个数组并返回总和(即def sum_array(arr); return arr.inject{ |s, t| s + t }; end)?(或者还有其他一些方法吗?)

ruby monkeypatching

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

针对同一表保存具有多个外键关系的 Peewee 查询

我有以下 Peewee PostgreSQL 模型:

class Game(Model):
    class Meta:
        database = db
        db_table = 'd_games'

    game_id = PrimaryKeyField()
    location = CharField()

    home_team = ForeignKeyField(Team, related_name='home_games')
    away_team = ForeignKeyField(Team, related_name='away_games')
Run Code Online (Sandbox Code Playgroud)

您可以看到该模型与 Team 模型有两个外键关系。

我想做类似的事情:

games = Game.select(Game, Team).join(Team).limit(10)
for g in games:
    print '%s vs. %s' % (g.home_team.team_name, g.away_team.team_name)
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然home_team关系保存在初始查询中:

# from the query log
'SELECT t1."game_id", t1."game_date", t1."location", t1."home_team_id", t1."away_team_id", t2."team_id", t2."team_name"
FROM "d_games" AS t1 
INNER JOIN "d_team" AS t2 
ON (t1."home_team_id" = t2."team_id") 
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

这种away_team …

python peewee

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

保证金:0自动不居中?

我在Chrome,Firefox和Safari中尝试了以下代码,但我的div并没有完全集中.

HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <link href="custom.css" media="screen" rel="stylesheet" type="text/css" />
</head> 
<body>  
    <div class="center">Hello!</div>
</body> 
</html>
Run Code Online (Sandbox Code Playgroud)

custom.css:

.center {
  width: 400px;
  margin: 0 auto;
  border: 5px solid black;
}
Run Code Online (Sandbox Code Playgroud)

这会在Chrome中生成以下内容: 替代文字

你可以看到左边距大于右边距.

我究竟做错了什么?

css

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

在ocaml中生成大量字母时堆栈溢出

给定一个字母表["a"; "b"; "c"]我想将所有长度为25的序列转储到一个文件中.(字母可以按顺序重复;它不是排列.)问题是,Stack overflow during evaluation (looping recursion?)当我尝试使用以下代码时,我得到了一个:

let addAlphabetToPrefix alphabet prefix =
  List.map (function letter -> (prefix ^ letter)) alphabet;;

let rec generateWords alphabet counter words =
  if counter > 25 then
    words
  else
    let newWords = List.flatten(List.map (function word -> addAlphabetToPrefix alphabet word) words) in 
    generateWords alphabet (counter + 1) newWords;;

generateWords ["a"; "b"; "c"] 0 [""];; (* Produces a stack overflow. *)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?我想先生成整个列表,然后将整个列表转储到文件中,但是我是否必须重复生成部分列表然后转储?会做一些懒惰的帮助吗?

为什么发生堆栈溢出?AFAICT,我的generateWords函数是尾递归的.问题是words我生成的列表变得太大而无法适应内存吗?

stack-overflow ocaml tail-recursion

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

使用Coffeescript读取本地文件

我正在尝试用Coffeescript阅读一个文件.在我进入coffeerepo 的同一个文件夹中,我有一个名为的文件hello.txt.

coffee> fs = require 'fs'
coffee> x = fs.readFile "hello.txt"
undefined
coffee> x
undefined
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript node.js coffeescript

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

以编程方式对数据框的列进行求和?

假设我有以下数据框:

dd <- data.frame(x1 = c(1, 2, 3), x2 = c(3, 4, 5), x3 = (5, 6, 7))
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,如下所示:

dd$x.sum <- dd$x1 + dd$x2 + dd$x3
Run Code Online (Sandbox Code Playgroud)

但不是写出添加(假设我实际上有100列x1, x2, ..., x100我想要加在一起),我想以编程方式编写它.就像是:

dd$x.sum <- sum(sapply(1:3, function(i) { 
                              return(dd[paste0("x", i)]) 
                            }))
Run Code Online (Sandbox Code Playgroud)

除此之外不起作用.

我该怎么做呢?

r

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

用于数据可视化的Flash vs. Flex与Actionscript

我正在尝试学习如何构建交互式数据可视化,我想我想要使用Flash/Flex/ActionScript路由而不是使用Processing.

问题是,我从来没有理解这三者之间的区别是什么,所以我不知道应该学习哪一个.

听起来Flash更适合设计人员/非程序员,Flex更适合程序员,而ActionScript只是Flash和Flex中使用的编程语言(即Flash和Flex属于Actionscript,因为iPhone SDK是针对Objective C的. .?).它是否正确?

如果是这样,我是程序员,所以听起来我想要去Flex或ActionScript路线.选择ActionScript书籍和选择Flex书籍有什么区别?

apache-flex flash actionscript-3

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

如何在jquery对象上调用raphael方法?

我正在使用Raphael创建一些圈子.当用户单击按钮时,我想为这些圆圈设置动画(通过增加它们的半径).我该怎么做呢?

例如,这是我的示例代码:

<!DOCTYPE html>
<html>

<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="raphael.js"></script>
<script type="text/javascript">

$(function() {  
var paper = new Raphael("canvas_container", 300, 150);
paper.circle(50, 75, 30);
paper.circle(150, 75, 30);

$("button").click(function() {
    $("circle").each(function(i) {      
        this.animate({ r: 100 }, 500); // Doesn't work.
    });     
});

});
</script>
</head>

<body>
<div id="canvas_container"></div>  
<button>Click me to animate the circles</button>
</body>

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

[一般来说,我不清楚以下两个变量之间的区别是什么:

var c = paper.circle(50, 75, 30); // Raphael circle
$("circle").first(); // using jQuery to grab that Raphael circle
Run Code Online (Sandbox Code Playgroud)

jQuery对象是Raphael圈子的包装器吗?]

javascript jquery raphael

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

更新二维计数表

假设我想要一个Scala数据结构,该数据结构实现可以随时间变化的二维计数表(即,表中的单个单元格可以递增或递减)。我应该用什么来做到这一点?

我可以使用二维数组:

val x = Array.fill[Int](1, 2) = 0
x(1)(2) += 1
Run Code Online (Sandbox Code Playgroud)

但是数组是可变的,我想我应该稍微喜欢不变的数据结构。

所以我考虑使用二维向量:

val x = Vector.fill[Int](1, 2) = 0
// how do I update this? I want to write something like val newX : Vector[Vector[Int]] = x.add((1, 2), 1)
// but I'm not sure how
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何只更改一个元素就可以得到一个新的向量。

最好的方法是什么?

scala

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

如何在Scala中将String转换为不同的编码?

可能重复:
如何强制jar使用(或运行jvm)utf-8而不是系统的默认编码

我有一堆字符串,我想读作UTF-8.有没有办法在Scala中强制执行此编码,而不传递命令行参数?

例如,我想做类似的事情val utf8EncodedString = new String(myString, "UTF-8").

scala utf-8

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

类型不匹配错误:找到SortedSet [Int],必需Set [Int]

假设我有以下代码:

case class Foo(x: SortedSet[String]) {
  def bar: Set[String] = x
}
Run Code Online (Sandbox Code Playgroud)

(这是我实际代码的简化.)如果我尝试运行它,我会收到以下错误:

error: type mismatch;
found   : scala.collection.SortedSet[String]
required: Set[String]
   def bar: Set[String] = x
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?不是SortedSet[String]一个副特征Set[String]

scala

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