如何在javascript中创建自定义事件

How to create custom events in javascript?

本文关键字:创建 自定义 事件 javascript      更新时间:2023-09-26

如何在类似onclick事件的javascript中创建自定义事件。我想创建一个事件作为onligin&如何将自定义数据传递到新创建的事件&如何向该事件添加回调函数。

我只能回答创建自定义事件部分。。"调度"会在你想要的时候被触发。

在JS web api中有一个现成的CustomEvent()构造函数。

示例

// add an appropriate event listener
obj.addEventListener("cat", function(e) { process(e.detail) });
// create and dispatch the event
var event = new CustomEvent("cat", {
  detail: {
    hazcheeseburger: true
  }
});
obj.dispatchEvent(event);

了解更多信息。转到MDN customEvent

JavaScript中基本上没有类,你只需要函数,可以通过变量将一个函数分配给另一个函数

  var MyClass = (function(){
        var static_var = 1;
        var MyClass = function ( callback ) {
            var privateVar;
            var privateFn = function(){ alert('Im private!'); };
            this.someProperty = 5;
            this.someFunction = function () {
                alert('Im public!');
            };
            this.say = function() {
                alert('Num ' + this.someProperty);
                callback();
            }
            this.alter = function() {
                this.someProperty ++;
            }
        };
        return MyClass;
    })();
    TheClass = new MyClass(function() {
        alert('Event!');
    });
    TheClass.say();

请点击JSFiddler中的示例-http://jsfiddle.net/9pCmh/

如果您使用jQuery,您可以利用它们对自定义事件的处理。这些事件可以像典型的浏览器事件一样被绑定和触发。请注意,它们还允许您指定可用于事件处理程序的自定义数据。

示例:$('my-selector').on('myApp:myEvent',function(){/*code here*/});

$('my-selector').trigger('myApp:myCustomEvent');