admin管理员组文章数量:1405190
How do I create a custom event for a javascript class?
Example Code
function somefunction(url){
this.h_world = function(){/*some random code to do*/ };
}
var hw = new somefunction();
Now, for a very simple example, how do I create a custom event handler for this when hw.h_world
has finished executing and return some data with it?
For example
var hw = new somefunction();
hw.h_world();
hw.finished_h_world = function(somedata){
alert(somedata);
}
How do I create a custom event for a javascript class?
Example Code
function somefunction(url){
this.h_world = function(){/*some random code to do*/ };
}
var hw = new somefunction();
Now, for a very simple example, how do I create a custom event handler for this when hw.h_world
has finished executing and return some data with it?
For example
var hw = new somefunction();
hw.h_world();
hw.finished_h_world = function(somedata){
alert(somedata);
}
Share
Improve this question
asked Mar 12, 2012 at 15:54
Kevin PeiKevin Pei
5,8727 gold badges40 silver badges55 bronze badges
1
- No events are generated by the simple execution of JavaScript code (outside of some special behavior in Firefox around property "watch" settings). – Pointy Commented Mar 12, 2012 at 15:59
2 Answers
Reset to default 5What you need is a callback function:
function somefunction(url){
this.h_world = function(callback){
var somedata = 'some data';
callback(somedata);
};
}
And then:
var hw = new somefunction();
hw.h_world(function(somedata){
alert(somedata); // Will alert 'some data';
});
Here is a jsfiddle: http://jsfiddle/remibreton/xzeEd/
you can pass a callback function to h_world function and execute it on finish of it
function somefunction(url){
this.h_world = function(cb){
//do some operation
if (cb && typeof cb === 'function') {
cb();
//cb.call(this, args1, arg2...); //execute callback in scope of current object
}
};
}
or you can add a function to your class like this
function somefunction(url){
this.h_world = function(){
//do operation
this.h_world_finish(parameters);
};
this.h_world_finish = function () {};
}
var obj = new someFunction(url);
obj.h_world_finish = function (arg) {
alert("finished h_world");
};
obj.h_world();
本文标签: javascript create class eventStack Overflow
版权声明:本文标题:javascript create class event - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744874648a2629842.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论