如何将自定义函数绑定到create jquery元素?

时间:2015-08-24 09:24:36

标签: javascript jquery

我想使用jquery创建HTML元素,如:

var $ele = $('<select>',{name: name, class: className});

并希望将自定义函数绑定到该元素,如:

$ele.testFun = function () { 
    return this.val();
};

我希望像以下那样使用该功能:

$ele.testFun();

那么,我怎么能尝试得到那个结果呢。

4 个答案:

答案 0 :(得分:2)

你可以这样做:

&#13;
&#13;
some_metric
&#13;
&#13;
&#13;

答案 1 :(得分:2)

$hide会将一个函数绑定到元素周围的jQuery包装器,而不是元素。它会在您使用$ele.testFun = ...时起作用;如果你得到另一个jQuery包装器,或者当你在元素本身上调用它时,它将无法工作。

$ele会将函数绑定到元素本身。

如果您希望能够对任何jQuery包装器(而不是专门的$ele.get(0).testFun = ...)说$ele.testFun(),则需要通过定义$ele来创建jQuery扩展。

答案 2 :(得分:1)

您要做的是创建一个自定义jQuery插件。

您需要将方法添加到jQuery的原型对象中,以便jQuery对象实例可以访问它们

$.fn.testFun = function () { 
    return this.val();
};

答案 3 :(得分:0)

您可以按照以下方式执行类似的操作:

$.fn.create = function(tagName, attributes)
{
    var attributeString = '';

    for(attribute in attributes)
    {
        attributeString += attribute + '="' + attributes[attribute] + '" ';
    }

    return $(this).append('<' + tagName + ' ' + attributeString + '></' + tagName + '>');
};

然后按如下方式使用:

var $ele = $('body').create('select',{name: name, class: className});