Javascript 什么';addlistener有什么问题。。。如何启动我的活动
我正在使用以下功能来完成我的任务。当光标移离文本框时,它可以正常工作,但如果我想从代码中触发相同的事件,就像下一个函数一样,我会得到错误Javascript 什么';addlistener有什么问题。。。如何启动我的活动,javascript,javascript-events,Javascript,Javascript Events,我正在使用以下功能来完成我的任务。当光标移离文本框时,它可以正常工作,但如果我想从代码中触发相同的事件,就像下一个函数一样,我会得到错误 function addEvent( obj, type, fn ) { if (obj.addEventListener) { obj.addEventListener( type, fn, false ); } else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn]
function addEvent( obj, type, fn ) {
if (obj.addEventListener) {
obj.addEventListener( type, fn, false );
}
else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
obj.attachEvent( "on"+type, obj[type+fn] );
}
else {
obj["on"+type] = obj["e"+type+fn];
}
}
function addEventByName(ObjName, event, func){
MyEle = document.getElementsByName(ObjName);
addEvent(MyEle[0], event, func);
}
addEventByName("txtBox", 'blur', function(){
alert('hello');
});
function fire(){
x = document.getElementsByName('txtBox')[0];
x.blur(); //gives error
x.onblur(); //gives error
}
调整中作为jQuery扩展提供的代码,可以使用以下函数以编程方式跨浏览器触发事件:
function fireEvent(el, eventType)
{
if (document.createEvent)
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent(eventType, false, false);
el.dispatchEvent(evt);
}
else if (document.createEventObject)
{
el.fireEvent("on" + eventType);
}
}
然后,您的fire
函数将如下所示:
var x = document.getElementsByName("txtBox")[0];
fireEvent(x, "blur");