JS类中event的简单实现<!-- 
JS类中event的简单实现    description:JS类中event的简单实现
JS类中event的简单实现    code by Lonsan on 2005
JS类中event的简单实现    email:Lonsan21@163.com
JS类中event的简单实现
JS类中event的简单实现    请各位多批评指导,谢谢
JS类中event的简单实现
-->
JS类中event的简单实现
<html>
JS类中event的简单实现
<head>
JS类中event的简单实现
<title> JS Event </title>
JS类中event的简单实现
<style>
JS类中event的简单实现
</style>
JS类中event的简单实现
</head>
JS类中event的简单实现
JS类中event的简单实现
<body>
JS类中event的简单实现
</body>
JS类中event的简单实现
</html>
JS类中event的简单实现

JS类中event的简单实现
<!--
JS类中event的简单实现
//实现,实现类似C#风格调用
JS类中event的简单实现
function RaiseEvent(sender,event)
{
JS类中event的简单实现    event.replace(
/^undefined|null|\s+/,"");
JS类中event的简单实现    eval(
"var f = function(sender){\n"+event+"\n}");
JS类中event的简单实现    f(sender);
JS类中event的简单实现}

JS类中event的简单实现
function EventHandler(o)
{
JS类中event的简单实现    
this.delegate = "\n";
JS类中event的简单实现
JS类中event的简单实现    
//function
JS类中event的简单实现
    if(typeof o=="function")
{
JS类中event的简单实现        
this.delegate += o.toString().match(/function([^\0\(]*)\(/)[1+ "(sender);\n";
JS类中event的简单实现    }

JS类中event的简单实现    
//function name
JS类中event的简单实现
    else if(typeof o=="string" && /^[a-z\$]*[0-9a-z]+$/i.test(o))
{
JS类中event的简单实现        
this.delegate += o + "(sender);\n";
JS类中event的简单实现    }

JS类中event的简单实现    
//function code
JS类中event的简单实现
    else if(typeof o=="string")
{
JS类中event的简单实现        
this.delegate += o + ";\n";
JS类中event的简单实现    }

JS类中event的简单实现    
//else
JS类中event的简单实现
    else
{
JS类中event的简单实现        
//do nothing
JS类中event的简单实现
    }
JS类中event的简单实现
JS类中event的简单实现    
return this.delegate;
JS类中event的简单实现}

JS类中event的简单实现EventHandler.prototype.toString 
= function()
{
JS类中event的简单实现    
return this.delegate;
JS类中event的简单实现}

JS类中event的简单实现
JS类中event的简单实现
JS类中event的简单实现
//示例

JS类中event的简单实现Persion.prototype.onBeginSpeak;
JS类中event的简单实现
//也可有默认事件,优先进行处理
JS类中event的简单实现
Persion.prototype.onEndSpeak = new EventHandler(DefaultEvent);
JS类中event的简单实现Persion.prototype.name
="Lonsan";
JS类中event的简单实现Persion.prototype.Speak 
= function(sWords)
{
JS类中event的简单实现    RaiseEvent(
thisthis.onBeginSpeak);
JS类中event的简单实现
JS类中event的简单实现    alert(
"正在讲话。。。\n以下是讲话内容:\n"+sWords);
JS类中event的简单实现
JS类中event的简单实现    RaiseEvent(
thisthis.onEndSpeak);
JS类中event的简单实现}

JS类中event的简单实现
JS类中event的简单实现
var p = new Persion()
JS类中event的简单实现
JS类中event的简单实现
//事件挂接,可以挂接多个
JS类中event的简单实现
p.onBeginSpeak += new EventHandler(BeginSpeak1);
JS类中event的简单实现p.onBeginSpeak 
+= new EventHandler(BeginSpeak2);
JS类中event的简单实现p.onEndSpeak 
+= new EventHandler("EndSpeak");
JS类中event的简单实现p.onEndSpeak 
+= new EventHandler("alert('讲话结束了,大家散场吧。');");
JS类中event的简单实现
JS类中event的简单实现p.Speak(
"大家好");
JS类中event的简单实现
JS类中event的简单实现
function BeginSpeak1(sender)
{
JS类中event的简单实现    alert(
"处理BeginSpeak事件!--1\n讲话者:"+sender.name);
JS类中event的简单实现}

JS类中event的简单实现
function BeginSpeak2(sender)
{
JS类中event的简单实现    alert(
"处理BeginSpeak事件!--2");
JS类中event的简单实现}

JS类中event的简单实现
function EndSpeak(sender)
{
JS类中event的简单实现    alert(
"处理EndSpeak事件!");
JS类中event的简单实现}

JS类中event的简单实现
function DefaultEvent(sender)
{
JS类中event的简单实现    alert(
"EndSpeak的默认事件处理。");
JS类中event的简单实现}

JS类中event的简单实现
//-->
JS类中event的简单实现
</script>

相关文章: