Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的新事件类型_Javascript_Jquery_Javascript Events - Fatal编程技术网

javascript中的新事件类型

javascript中的新事件类型,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我想用javascript创建一个新的事件类型。假设我有一些用户获取redicream的条件,我想根据这些条件触发并绑定到这个事件。如何使用javascript创建新事件。我正在使用jQuery,因此理想情况下,我能够将它与.trigger('hasaquiredicream')和.bind('hasaquiredicream')一起使用。我假设一个纯javascript解决方案可以很好地与jQuery配合使用(它不需要是插件),这可以做到吗?在javascript对象上使用jQuery的.tr

我想用javascript创建一个新的事件类型。假设我有一些用户
获取redicream
的条件,我想根据这些条件触发并绑定到这个事件。如何使用javascript创建新事件。我正在使用jQuery,因此理想情况下,我能够将它与
.trigger('hasaquiredicream')
.bind('hasaquiredicream')
一起使用。我假设一个纯javascript解决方案可以很好地与jQuery配合使用(它不需要是插件),这可以做到吗?

在javascript对象上使用jQuery的
.trigger()

var obj = { id: 0, ... };

$(obj).bind('custom', function(e, arg, ...) { ... });
$(obj).trigger('custom', [arg, ...]);

或者,使用纯JavaScript实现:

函数EventHelper(){
this.handlers=[];
this.bind=函数(fn){
这个.handlers.push(fn);
};
this.trigger=函数(args){
for(var i=0;i
参见类似问题和
.trigger()
.bind()
支持自定义事件。它已经像您描述的那样工作了…@felix ahh,我不知道在使用它之前我不需要先定义它
function EventHelper() {
    this.handlers = [];

    this.bind = function(fn) {
        this.handlers.push(fn);
    };

    this.trigger = function(args) {
        for (var i = 0; i < this.handlers.length; i++) {
            this.handlers[i].call(this, args);
        }
    };

    return this;
}

var event = new EventHelper();
event.bind(function() { ... });
event.trigger();