C# Javascript中的类C事件
如何在javascript中创建c中的新事件/类似事件C# Javascript中的类C事件,c#,javascript,C#,Javascript,如何在javascript中创建c中的新事件/类似事件 private event EventHandler asdCompleted; private void SetEventHandlers() { this.asdCompleted += asd_completed; } private void asd_completed(object sender, EventArgs e) { } 并在任何地方触发事件,如c: this.asdCompleted(this, nul
private event EventHandler asdCompleted;
private void SetEventHandlers()
{
this.asdCompleted += asd_completed;
}
private void asd_completed(object sender, EventArgs e)
{
}
并在任何地方触发事件,如c:
this.asdCompleted(this, null);
像这样的
<html>
<body>
<script>
document.asdCompleted = function(s){
alert(s);
}
document.asdCompleted('test');
</script>
</body>
</html>
如果您使用jQuery,那么答案是您可以定义一个简单的委托列表,如.NET内部使用的委托列表,如下所示
function createEvent() {
var invokeList = [];
var event = function() {
for (var i = 0; i < invokeList.length; i++) {
invokeList[i].apply(arguments);
}
}
event.add = function(value) {
invokeList[invokeList.length] = value;
}
return event;
}
var foo = {
myEvent: createEvent()
}
foo.myEvent.add(function() { console.log('in my event'); });
foo.myEvent.add(function() { console.log('also in my event'); });
foo.myEvent();
看看我对这个类似问题的回答,我认为不完全是这样,因为这种方法缺乏向同一事件添加服务器处理程序的能力。