The code is below and demo could be seen here. (https://jsfiddle.net/SiddharthMishra/kzdkpmvq/1/embedded/result/)
You can play with it by using JSFiddle.
JSFiddle:
HTML Code:
We have created a simple HTML Dorpdown element here.
<select id="actionList"> 
       <option action="">ACTIONS</option> 
       <option action="add">ADD NEW</option> 
<option action="edit">EDIT</option> 
</select> 
 | 
 
JavaScript Code:
We will add JavaScript methods to ‘ onmouseover ’ and ‘onmouseleave’ events. 
var actionList = document.getElementById("actionList"); 
actionList.onchange = function () { templateAction(templateActionList); } 
actionList.onmouseover = function () { selectElementMouseover(actionList); } 
actionList.onmouseleave = function () { selectElementMouseleave(actionList); } function selectElementMouseover(element) { fireEvent(element, "mousedown"); fireEvent(element, "mouseup"); }
 
function selectElementMouseleave(element) { fireEvent(element, "mousedown"); }
 | 
 
Now below method will take care of the rest:
// To fire any event from JavaScript. function fireEvent(node, eventName) { var doc; if (node.ownerDocument) { doc = node.ownerDocument; } else if (node.nodeType == 9) {         doc = node;
} else { throw new Error("Invalid node passed to fireEvent: " + node.id);     }
 
if (node.dispatchEvent) { var eventClass = "";  
// Different events have different event classes. switch (eventName) { case "click": // 'click' works correctly in Safari. // For other we should use 'mousedown' or 'mouseup'. case "mousedown": case "mouseup": eventClass = "MouseEvents"; break;  
case "focus": case "change": case "blur": case "select": eventClass = "HTMLEvents"; break;  
default: throw "fireEvent: Couldn't find an event class for event '" + eventName + "'."; break;         }
var event = doc.createEvent(eventClass);  
var bubbles = eventName == "change" ? false : true; 
// All events created as bubbling and cancelable. event.initEvent(eventName, bubbles, true);  
event.synthetic = true; node.dispatchEvent(event, true); } else if (node.fireEvent) { var event = doc.createEventObject(); event.synthetic = true; node.fireEvent("on" + eventName, event);     }
};
 | 
 
Reference: http://jsfiddle.net/mendesjuan/rHMCy/4/
No comments:
Post a Comment