这是我不久前问过的另一个问题的后续问题.通常,您可以从jQuery事件访问函数调用中的事件,如下所示:
$item.live("click", functionToCall);
Run Code Online (Sandbox Code Playgroud)
并在功能:
function functionToCall(ev) {
// do something with ev here, like check 'ev.target'
}
Run Code Online (Sandbox Code Playgroud)
但是如果我想将一个参数发送到functionToCall()并访问该事件呢?也许这样的事情呢?:
$item.live("click", functionToCall($(this)); // send over parameter this time
Run Code Online (Sandbox Code Playgroud)
和
function functionToCall(ev, $clickedItem) {
// both accessible here?
alert(ev.type);
alert($clickedItem.attr('id'));
}
Run Code Online (Sandbox Code Playgroud)
这是可以接受的,还是有不同的方式发送参数?因为这种方式对我来说似乎不对.任何帮助,将不胜感激.谢谢.
澄清:我意识到一个匿名的回调函数可以让我访问这两个,但由于各种原因太长而无法进入这篇文章,我需要使用函数调用而不是匿名函数.所以我的问题严格处理需要调用外部函数的场景.谢谢.
更新:我的原始问题提出了需要将$(this)作为参数传递给外部函数的场景.事实证明,$(this)将在函数中可访问,甚至不需要传递它,因为jQuery基于事件将值重新分配给"this".所以执行此代码应该适用于我原来的问题:
$item.live("click", functionToCall);
Run Code Online (Sandbox Code Playgroud)
和
function functionToCall(ev) {
alert(ev.type);
alert($(this).attr('id')); // display id of item that was clicked
}
Run Code Online (Sandbox Code Playgroud)
但是,正如其他人已经回答的那样,有一种不同的场景需要将不同类型的变量作为参数传递,例如简单的字符串或int.在这种情况下,正如其他人所说,它变得更加复杂.但这里似乎有足够的答案来满足第二种情况(即"currying").谢谢.
我正在开发一个Intranet应用程序,我想进行安全身份验证.
一种方法可以使用"https".问题是服务器没有可信证书,因此对客户端来说有点烦人,因为浏览器不信任证书和投诉带有可怕的消息.
使用http会破坏用户密码,但可以与"摘要访问身份验证 " 结合使用
你怎么看?
我需要将哈希值插入数据库.以下是我必须在table1列键和值中插入值的代码模板:
use DBI;
use strict;
%hash; #assuming it already contains desired values
my $dbh = DBI->connect(
"dbi:Sybase:server=$Srv;database=$Db",
"$user", "$passwd"
) or die sprintf 'could not connect to database %s', DBI->errstr;
my $query= "Insert INTO table1(key, values) VALUES (?,?) ";
my $sth = $dbh->prepare($query)
or die "could not prepare statement\n", $dbh->errstr;
$sth-> execute or die "could not execute", $sth->errstr;
Run Code Online (Sandbox Code Playgroud)
我知道如何使用数组插入值,即使用execute_array(),但不知道如何插入%hashtable1中存在的值.
有什么建议?
有没有办法使用部分下载功能通过HTTP下载巨大且仍在增长的文件?
似乎这段代码每次执行时都会从头开始下载文件:
import urllib
urllib.urlretrieve ("http://www.example.com/huge-growing-file", "huge-growing-file")
Run Code Online (Sandbox Code Playgroud)
我想要:
var User = {
Name: "Some Name", Age: 26,
Show: function() { alert("Age= "+this.Age)};
};
function Test(fn) {
fn();
}
Test(User.Show);
Run Code Online (Sandbox Code Playgroud)
===============
代码显示的警报是"Age = Undefined".我理解,因为User.Show函数是从Test()内部调用的,所以引用'this'的'Test()'函数而不是'User'对象.我的问题是,有没有办法解决这个问题?
说我有一串文字,如
$text = "Hello world, be sure to visit http://whatever.com today";
Run Code Online (Sandbox Code Playgroud)
我怎么能(可能使用正则表达式)插入链接的锚标记(显示链接本身作为链接文本)?
有$ _comment而不是$ comment有什么意义?
class Default_Model_Guestbook
{
protected $_comment;
protected $_created;
protected $_email;
protected $_id;
protected $_mapper;
Run Code Online (Sandbox Code Playgroud) F#的一个主张是它允许交互式脚本和数据操作/探索.我一直在玩F#试图了解它与Matlab和R在数据分析工作中的比较.显然,F#没有这些生态系统的所有实用功能,但我对底层语言的一般优点/缺点更感兴趣.
对我而言,即使在功能风格方面,最大的变化是F#是静态类型的.这有一些吸引力,但也经常感觉像一件紧身衣.例如,我还没有找到一种处理异构矩形数据的便捷方法 - 想想R中的数据帧.假设我正在读取一个带有名称(字符串)和权重(浮点数)的CSV文件.通常我会加载数据,执行一些转换,添加变量等,然后运行分析.在R中,第一部分可能看起来像:
df <- read.csv('weights.csv')
df$logweight <- log(df$weight)
Run Code Online (Sandbox Code Playgroud)
在F#中,我不清楚应该使用什么结构来做到这一点.据我所知,我有两个选择:1)我可以先定义一个强类型的类(专家F#9.10)或2)我可以使用异构容器,如ArrayList.静态类型的类似乎不可行,因为我需要在加载数据后以ad-hoc方式(logweight)添加变量.异构容器也不方便,因为每次访问变量时我都需要将其解包.在F#中:
let df = readCsv("weights.csv")
df.["logweight"] = log(double df.["weight"])
Run Code Online (Sandbox Code Playgroud)
如果这是一次或两次,它可能没问题,但每次使用变量时指定一个类型似乎都不合理.我经常处理调查,其中包含100个添加/删除的变量,分成新的子集并与其他数据帧合并.
我错过了一些明显的第三选择吗?是否有一些有趣和轻松的方式来交互和操纵异构数据?如果我需要在.Net上进行数据分析,我现在的意思是我应该使用IronPython进行所有数据探索/转换/交互工作,并且只对数字密集型部分使用F#/ C#.F#本质上是快速和脏的异构数据工作的错误工具吗?
是否有一个库允许我对传入和传出数据包执行链路层数据包修改?
基本上我想根据传入的MAC地址,IP地址,端口等对数据包进行一些转换(例如,更改IP有效负载).我还希望能够对传出的数据包执行相同的操作,即修改数据包在他们离开系统之前.
给定一个文件,我想检查这是一个DLL,还是共享对象(Linux)或dylib(Mac OS X),或者是不同的东西.我的主要兴趣是区分Linux和Mac OS X上的可执行文件和DLL.对于Windows,扩展应该足以解决我的问题.
我已经检查过神奇数字技术对Linux不起作用,因为可执行文件和共享对象都具有相同的编号.