在jQuery函数中传递“el”?

时间:2013-09-09 15:17:06

标签: jquery

这显然很常见,我找不到在函数内传递“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

2 个答案:

答案 0 :(得分:4)

el通常表示元素,el.type会获取元素类型,如textnumber等,如果元素看起来像:

<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