JS中手动触发事件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function deliverTask() {
var fireOnThis = document.getElementById("btnTo"); //您需要触发元素的ID

if (document.all) //For Ie
{
fireOnThis.click();
}
elseif (document.createEvent) //FOR DOM2
{
var ev = document.createEvent('HTMLEvents');
ev.initEvent(
'click', false, true);
fireOnThis.dispatchEvent(ev);
}
}

function receiveTask() {
alert(
"我是JetWu,我又接到新任务了我要好好的完成它");
}
</script>
</head>
<body>

<p>
<input id="btnFrom" type="button" value="Pm张" onclick="deliverTask()"/>
:刚刚接到新的需求,需要马上完成,但我现在有一个重要会议,交给<a href="http://jetwu.cnblogs.com/">JetWu</a>处理吧(委托)
</p>

<p><input id="btnTo" type="button" value="CoderJetWu" onclick="receiveTask()"/>
</p>
</body>
</html>

注:在上面的例子演示了JS的手动触发事件(这个方法是在Jquery中的trigger方法不能使用时才用的,最好是用trigger)

 

document.createEvent

语法:

createEvent(eventType)

参数

描述

eventType

     想获取的 Event 对象的事件模块名。

    关于有效的事件类型列表,请参阅"说 明"部分。

返回值

返回新创建的 Event 对象,具有指定的类型。

抛出

如果实现支持需要的事件类型,该方法将抛出代码为 NOT_SUPPORTED_ERR DOMException 异常。

说明

该方法将创建一种新的事件类型,该类型由参数 eventType 指定。注意,该参数的值不是要创建的事件接口的名称,而是定义那个接口的 DOM 模块的名称。

下表列出了 eventType 的合法值和每个值创建的事件接口:

参数

事件接口

初始化方法

HTMLEvents

HTMLEvent

iniEvent()

MouseEvents

MouseEvent

iniMouseEvent()

UIEvents

UIEvent

iniUIEvent()

用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象。关于初始化方法的详细信息,请参阅 Event 对象参考。

该方法实际上不是由 Document 接口定义的,而是由 DocumentEvent 接口定义的。如果一个实现支持 Event 模块,那么 Document 对象就会实现 DocumentEvent 接口并支持该方法。

 

initEvent

 

语法:

 

void initEvent(String eventTypeArg,boolean canBubbleArg,boolean cancelableArg)
参数:
eventTypeArg - 指定事件类型。

               此类型可以是当前在此规范中定义的任何事件类型,或是一个新的事件类型。

               该字符串必须是 XML 名称。

               任何新的事件类型一定不能以字符串 "DOM" 的大写、小写或混合大小写版本开头。

               此前缀是为以后的 DOM 事件集保留的。

               还强烈推荐添加自己的事件的第三方使用自己的前缀以避免混淆,

               降低与其他新的事件发生冲突的可能性。

canBubbleArg - 指定该事件是否可以 bubble。

cancelableArg - 指定是否可以阻止事件的默认操作。

 

initEvent 方法用于初始化通过 DocumentEvent 接口创建的 Event 的值。此方法只能在通过 dispatchEvent 方法指派 Event 之前调用,尽管在该阶段可以多次调用它(如有必要)。如果被多次调用,则最后一次调用优先。如果从 Event 接口的子类调用,则只修改在 initEvent 方法中指定的值,所有其他属性保持不变。

 

dispatchEvent;

语法

调用方法: dispatchEvent(Event)

参数解释: eventType : 已经声明的Event 对象。

dispatchEvent 是事件委托中的最后一步,将委托事件与调用的元素链接起来,达到调用这个元素的事件的 效果。

 

作者:JetWu
出处:http://jetwu.cnblogs.com/
本博原创文章版权归博客园和本人共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称和原文连接,否则保留追究法律责任的权利。

posted @ 2011-11-07 22:42  JetWu  阅读(4071)  评论(0编辑  收藏  举报