2010-03-24 122 views
0

我正在使用以下功能來完成我的任務。它正常工作時,光標從文本框移開,但如果我想火從代碼中說這樣一個功能,我得到的錯誤相同的事件......addlistener有什麼問題...我如何解決我的事件

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 
} 

回答

0

適應給出一個jQuery擴展在this answer代碼,這裏有一個功能您可以使用編程方式觸發一個事件的跨瀏覽器:

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"); 
+0

日Thnx insin ....你後幫助我... – KoolKabin 2010-03-25 10:44:34

相關問題