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/
本博原创文章版权归博客园和本人共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称和原文连接,否则保留追究法律责任的权利。