这显然很常见,我找不到在函数内传递“el”的明确解释。
我真的很想完全包围它,我在jQuery上变得更好,这很令人兴奋,但我想更多地了解它。
我玩弄了在事件功能中使用“e”或“event”并在一定程度上理解它。
EX:
jQuery('a').click(function(event) {
event.preventDefault();
$('<div/>').append('default ' + event.type + ' prevented').appendTo('#log2');
});
这会返回此文本字符串“默认点击已阻止”,所以我现在明白为什么你传递event
它所以你可以参考里面的事件。对?
那是有道理的,我还需要更多练习,但我根本不确定“el”。
例如:如果我写了这样的函数。
var app = {
add: function (el) {
$('<div/>').append('default ' + el.type + ' prevented').appendTo('#log1');
}
}
jQuery('.add').click(function (e) {
e.preventDefault();
app.add(this);
});
显然这是错误的,因为“el”不是“类型”但是我试图用它来包围我的头,它是否得到一个对象的索引?
如果我知道这种方法被称为什么,我可能会更好运,因为由于缺乏术语,我无法找到相关信息。我知道第一个例子是“传递一个元素事件”不太确定它是什么时候这样,非常确定它是指对象还是什么东西?
这是一个小提琴,也许你可以修改它,这样我就可以研究它jsfiddle
答案 0 :(得分:4)
el
通常表示元素,el.type
会获取元素类型,如text
,number
等,如果元素看起来像:
<input type="text" />
所以它在大多数情况下是对DOM节点列表/元素的引用,但它只是一个变量,所以它可能意味着什么,但在这种情况下它显然是传入的DOM元素:
app.add(this);
答案 1 :(得分:1)
您正在传递DOM对象。代码中的this
指的是
<a class="add" href="#">Add</a>
尝试以下代码段来捕获事件类型:
jQuery('.add').click(function (e) {
e.preventDefault();
app.add(e);
});
的 DEMO FIDDLE 强>