将一个函数包含在另一个函数中

时间:2015-04-20 11:33:08

标签: javascript jquery

我正在使用jquery.webui-popover.js插件。我已经使用以下代码:

$('.button').webuiPopover({
    placement: 'bottom',
    title: 'Link Item to Button',
    content: '123',
    animation: 'pop',
    delay: {
        show: null,
        hide: 300
    },
});

但是我试图将它包装在我自己的函数中,因为我在代码中的不同时间在多个元素上调用它。我已将其更改为:

function AddCreatePopoverBinding(element) {

    element.webuiPopover({
        placement: 'bottom',
        title: 'Link Item to Button',
        content: '123',
        animation: 'pop',
        delay: {
            show: null,
            hide: 300
        },
    });
}

然后使用以下代码在我的代码中进一步调用它:

$('.button').AddCreatePopoverBinding();

但是我收到以下错误:

  

未捕获TypeError:$(...)。AddCreatePopoverBinding不是函数

我做错了什么?我尝试使用.each语句调用该函数,但也失败了。

2 个答案:

答案 0 :(得分:3)

作为 A。 Wolff 说,你需要所谓的jQuery Plugin才能做到这一点,即将你的函数添加到jQuery名称空间中:

$.fn.AddCreatePopoverBinding = function() {
    return this.webuiPopover({
        placement: 'bottom',
        title: 'Link Item to Button',
        content: '123',
        animation: 'pop',
        delay: {
            show: null,
            hide: 300
        },
    });
}

那也应该允许chaining

var button = $('.button').AddCreatePopoverBinding();
console.log(button.text());

答案 1 :(得分:1)

您可以这样调用您的函数:

AddCreatePopoverBinding($('.button'));