0

I want to change and trigger onclick function during onclick event.

Event triggering is used from Custom events in IE without using libraries

Code:

<html>
<head>
<script>
function triggerEvent(el,eventName){
    var event;
    if(document.createEvent){
        event = document.createEvent('HTMLEvents');
        event.initEvent(eventName,true,true);
    }else if(document.createEventObject){// IE < 9
        event = document.createEventObject();
        event.eventType = eventName;
    }
    event.eventName = eventName;
    if(el.dispatchEvent){
        el.dispatchEvent(event);
    }else if(el.fireEvent && htmlEvents['on'+eventName]){// IE < 9
        el.fireEvent('on'+event.eventType,event);// can trigger only real event (e.g. 'click')
    }else if(el[eventName]){
        el[eventName]();
    }else if(el['on'+eventName]){
        el['on'+eventName]();
    }
}

function firstClick(obj) {
  console.log("1st click");
  obj.onclick = function() {
    console.log("2nd click");
  }
  triggerEvent(obj, "click");
}

</script>

</head>
<body>
<div style="width:100px;height:100px;background-color:red;" onclick="firstClick(this);"></div>
</body>
</html>

Output on the first click is 1st click 2nd click in most browsers (IE7, Chrome, Firefox) but IE11. In IE11 output is just 1st click.

What can be done with this?

Community
  • 1
  • 1
red1ynx
  • 3,639
  • 1
  • 18
  • 23

0 Answers0