- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要对 javascript 调用的元数据进行一些说明。提供的下面代码具有从 AnotherFunction 的每个循环中调用的 SenderAsParameterFunc 和 NoExplicitParametersFunc。
var Obj = function(){
Obj.SenderAsParameterFunc = function(sender, param1, param2){
// log $(sender).id;
}
Obj.NoExplicitParametersFunc = function(){
// EXTRACT DEFAULT SENDER/CALLEE
// I see in console Obj.NoExplicitParametersFunc.caller.arguments >> SEE REF1
}
Obj.NoExplicitParametersFuncWithExtraArgs = function(this, par1, par2){
// 'this' from each loop?
}
Obj.AnotherFunc = function(){
var X = $('myselect');
var par1 = 1;
var par2 = 'bla';
$.each(X.find("option"), function () {
Obj.SenderAsParameterFunc(this, par1, par2);
// 'this' here references current object from 'each' loop
});
$.each(X.find("option"), Obj.NoExplicitParametersFunc);
// must be equvalent to first var,
// but to extract 'inner' this we have to do more magic in NoExplicitParametersFunc...
var par1 = 1;
var par2 = 'bla';
$.each(X.find("option"), Obj.NoExplicitParametersFuncWithExtraArgs);
}
}
那么应该在 NoExplicitParametersFunc 中编写什么才能访问每个选项,就像在 SenderAsParameterFunc 中使用 $(this) 完成的那样?
==========
好的,总结一下我学到的东西:如果一个函数没有参数
$.each(X.find("option"), Obj.NoExplicitParametersFunc);
然后 'this' 被默认传递并且可以在函数内访问。
如果函数有参数
$.each(X.find("option"), function () { Obj.SenderAsParameterFunc(this, par1, par2); });
然后“this”必须作为参数(第一个?)包含在函数内才能访问。
=============
REF1:
b.Event
altKey: undefined
attrChange: undefined
attrName: undefined
bubbles: true
cancelable: false
ctrlKey: undefined
currentTarget: input#inputId
data: undefined
delegateTarget: input#inputId
eventPhase: 2
handleObj: Object
isDefaultPrevented: function ot(){return!1}
jQuery19105656534675508738: true
metaKey: false
originalEvent: Event
relatedNode: undefined
relatedTarget: undefined
shiftKey: undefined
srcElement: input#inputId
target: input#inputId
timeStamp: 1366622725473
type: "change"
view: undefined
which: undefined
__proto__: Object,
currentTarget, delegateTarget, srcElement, target 都是一样的,但是实际应该怎么用,最正确的方法呢?引用资料将不胜感激!
谢谢。
最佳答案
TL;DR:在您的情况下这无关紧要,但如果您有疑问,请使用 currentTarget
我不太明白你的第一个问题,但是关于第二个问题......
当一个事件被调度时,这个事件通常会冒泡,例如在这个页面上:
<body>
<div>
<img src="foobar.png" />
</div>
</body>
如果用户单击 div
中的 img
元素,它将以这种方式触发事件
body - capturing
div - capturing
img - at target
div - bubbling
body - bubbling
因此,您可以向 body
添加一个监听器,您将捕获该事件。但是为了让您知道实际点击了哪个元素(在本例中为 img
),它提供了 event.target
属性(在 Internet Explorer 上为 srcElement
).
delegateTarget
是 jQuery 添加的属性,如果您使用事件委托(delegate),它会提供额外的信息。我不知道它到底是什么,但你可以看看at the documentation
最后 currentTarget
是您附加事件的元素,如果我们将监听器添加到 body
它将是 body
。所以每个事件的参数是
fire body.click with { target: img, currentTarget: body }
fire div.click with { target: img, currentTarget: div }
fire img.click with { target: img, currentTarget: img }
fire div.click with { target: img, currentTarget: div }
fire body.click with { target: img, currentTarget: body }
根据您的工作,您将需要一个或另一个属性。
关于javascript 关闭 : implicit parameters, 调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16145193/
这是我的查询: INSERT INTO location_province(name, country) SELECT child.name ,location_country.id
尽管我看到 C++ 教程中广泛使用术语 implicit casting 来表示这样一个事实,即当您将某种类型分配给另一种类型时,类型的转换将自动(隐式)完成,但我经常听说应该叫implicit co
所有表格都在 utf_unicode_ci 中。 我这样做是为了检查 SELECT table_schema, table_name, column_name, character_set_name,
def MyFun(result: ListBuffer[(String, DateTime, List[(String, Int)])]): String = { val json = (r
我刚刚在 Postgres 中创建了一个表,并收到一条通知消息,我不完全理解隐式索引和序列。如有任何澄清,我们将不胜感激。 my_database=# CREATE TABLE sites my_da
我正在关注 Fernando Villalobos 的 React.js - A guide for Rails developers AirPair 教程。 这里的目标是使用 Rails 和 Rea
当我选择一个选项时,我有通过多选列表在 dbase 中搜索的代码我有这个错误: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (ut
我正在尝试使用 execl 调用来执行 kernel-space-driver (driver.c) 中的二进制文件此时(从第 850 行开始): if (!retval) {
我正在尝试在内核 3.13 上编译内核模块,但出现此错误: error: implicit declaration of function 'create_proc_read_entry' [-Wer
我检查了数据库表,发现它在 latin1_swedish_ci 中,所以我将其更改为 utf8_general_ci 然后我将排序规则从 latin1_swedish_ci 更改到所有字段的 utf8
尝试通过 MySQL 中的存储过程进行选择时出现以下错误 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_ge
我收到了这个错误; Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)
我需要您帮助确定为什么会出现此错误 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT
我收到了这个错误; Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)
MySql 上的错误信息: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) fo
在我的删除服务器上执行 MySQL 中的存储过程时,如下所示: CREATE OR REPLACE PROCEDURE `SetNextPage`( IN `inRefNo` varchar(
我正在尝试为 Kali linux 2.0 安装我的 Alfa AWUS036ACH 适配器 我已经修复了之前的错误,但现在我被困在这里了。这是错误我正在接收。 os_dep/linux/rtw_an
我们正在使用以下存储过程,并且所有提到的表都使用“Collation = utf8_general_ci”,但我们仍然收到此错误: Error Code: 1267. Illegal mix of
我想让我的 User 表的 password 列在 mysql 中区分大小写。 表的说明如下: /*Table: mst_user*/ FIELD TYPE
我对这一切都很陌生,正在尝试在内核版本为 3.10.0-957.el7.x86_64 的虚拟机上编译程序。但我收到此错误: /home/../../../isr_demux.c: In functio
我是一名优秀的程序员,十分优秀!