0

这显然很常见,我找不到在函数中传递“el”的明确解释。

我真的很想完全理解它,我在 jQuery 方面变得更好了,这很令人兴奋,但我想更多地理解这一点。

我玩弄了在事件函数中使用“e”或“event”并在一定程度上理解了它。

前任:

    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

4

2 回答 2

4

el通常表示元素,如果元素看起来像这样,el.type则会得到元素类型,比如等:textnumber

<input type="text" />

所以在大多数情况下它是对 DOM 节点列表/元素的引用,但它只是一个变量,所以它可能意味着任何东西,但在这种情况下,它显然是传入的 DOM 元素:

app.add(this);
于 2013-09-09T15:19:32.163 回答
1

您正在传递 DOM 对象。this在代码中指

<a class="add" href="#">Add</a>

尝试下面的代码片段来捕获事件类型:

jQuery('.add').click(function (e) {
        e.preventDefault();
        app.add(e);
    });

DEMO FIDDLE

于 2013-09-09T15:21:02.770 回答