Adding Event Listeners on Elements - Javascript

前端 未结 5 1252
误落风尘
误落风尘 2020-12-03 17:22

Are there ways for me to listen for onblur or onclick events in javascript from an onload function? instead of doing it in the element itself.



        
5条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-03 17:43

    The way you are doing it is fine, but your event listener for the click event should be like this:

    button.addEventListener("click", function() { alert("alert");});
    

    Notice, the click event should be attached with "click", not "onclick".

    You can also try doing this the old way:

    function onload() {
       var button = document.getElementById("buttonid");
       // add onclick event 
       button.onclick = function() { 
            alert("alert");
       }
    }
    

    Update 1

    You need to also monitor for IE < 9, because those Vs use attachEvent(). Attach the event like this, so it will work with dinosaur browsers:

    if(button.addEventListener){
        button.addEventListener('click', function() { alert("alert");});    
    } else if(button.attachEvent){ // IE < 9 :(
        button.attachEvent('onclick', function() { alert("alert");});
    }
    

    Update 2

    Based on your edit, this should work works just fine.

    
        
            
        
        
            
        
    
    

    Please, do not use window.onload = on_load();, this will prevent all other onload event listeners from getting fired, or you are risking for your event listener to get overwritten. Consider attaching the onload event the way I am suggesting above.

提交回复
热议问题