如何在jquery插件中引发事件,并在前端消耗它?

时间:2010-03-10 15:17:26

标签: jquery jquery-plugins

我需要在jquery插件中使用参数引发一些事件,查看类似的问题,但似乎无法看到我在寻找什么?那里有一些基本的例子吗?

2 个答案:

答案 0 :(得分:2)

你是说这个?

$('#theTarget').trigger('event-name', ['hello', 'world']);

我认为我不知道“在前端消费它”是什么意思......

答案 1 :(得分:2)

如果我理解你想要提供一些回调,可以将它们称为

$(this).plugin({
    onInit: function(var) { alert(var) },
    onClick: function(var) { alert(var + '!') }
});

我这样做的方法是在插件中添加一个'onInit'选项,并在我想要执行的地方调用插件中的options.onInit(var1,var2,...)

$.fn.plugin = function(options) {
    var o = $.extend({}, $.fn.plugin.defaults, options);

    return this.each(
        function() {
            o.onInit('initializing...');

            $(this).bind('click', function(e) {
                onClick('clicked');
            });
        }
    );
}

现在前面的代码将执行alert('initializing ...');在init和alert('clicked!');点击

我不确定此代码是否遵循任何官方语法,但它运行良好

如果您只想绑定一些自定义事件,则很简单,如http://api.jquery.com/bind/中所述,只需

$(this).bind('customevent', function() {
    alert('hi');
});

然后使用

$(this).trigger('customevent');