如何在小部件创建时向jQuery UI小部件工厂事件添加侦听器?

如何在小部件创建时向jQuery UI小部件工厂事件添加侦听器?,jquery,jquery-ui,Jquery,Jquery Ui,我在链接中读到,当使用on创建jQueryUI小部件时,我们可以使用事件处理程序 但是,当我在下面的JSFIDLE中尝试时,它不起作用 $.widget( "my.customwidget", { _create: function() { alert('Hi!'); } }); $('#widget').on('widgetcreate', function (event, ui) { alert('Hi again!'); }); $('#widget

我在链接中读到,当使用on创建jQueryUI小部件时,我们可以使用事件处理程序

但是,当我在下面的JSFIDLE中尝试时,它不起作用

$.widget( "my.customwidget", {
    _create: function() {
        alert('Hi!');
    }
});
$('#widget').on('widgetcreate', function (event, ui) {
    alert('Hi again!');
});
$('#widget').customwidget();
警报“你好!”不会被处决。这是我的建议

除非我这么做

$.widget( "my.customwidget", {
    _create: function() {
        this.element.trigger('widgetcreate');
    }
});

我做错了什么?

事件是使用小部件本身的名称绑定的,即customwidget。由于继承模型,您只有customwidget元数据,但没有widget元数据。在您的示例中,事件的名称实际上是customwidgetcreate:

以下是最新的小提琴:


不久前,有一个关于类似主题的相关问题:

我在这里的职责是什么?这是任何元素吗?根据jQuery-ui,它应该是名称空间。你没有包括jQuery或jQuery-ui。你的小提琴工作得很好!LoltheFiddle:正在显示警报。文档中的哪个位置说明了这一点?我只是想知道我是否遗漏了文档中的一些段落或页面。。
$.widget( "my.customwidget", {
    _create: function() {
        this.element.trigger('widgetcreate');
    }
});
$('#widget').on('customwidgetcreate', function (event, ui) {
    alert('Hi again!');
});