开发者

How does one raise an event in a jquery plugin, and consume it on the front-end?

I nee开发者_开发百科d to raise a couple of events with parameters within a jquery plugin, looked at similar questions, but cant seem to see what I am looking for? ANy basic examples out there?


if i understand well you want to provide some callbacks, being able to call them as

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

the way i do this is by adding an option 'onInit' to the plugin and call options.onInit(var1, var2, ...) inside the plugin in the place where i want it executed

$.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');
            });
        }
    );
}

now the former code will execute alert('initializing...'); on init and alert('clicked!'); on click

i am not sure this code follows any official syntax, but it works well

if you just want to bind some custom events it is simple as described in http://api.jquery.com/bind/, just

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

then use

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


You mean this?

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

I don't think I know what "consume it on the front-end" means ...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜