JavaScript DHTML/Ext JS/Event
Содержание
Create instance of Ext.util.Observable, add event handler and fire event
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var myComponent = new Ext.util.Observable();
myComponent.addEvents("myEventName");
myComponent.on("myEventName", function() {
alert("asdf");
});
myComponent.fireEvent("myEventName");
});
</script>
<div id="div1">asdf</div>
</body>
</html>
Custom event with more than one parameters
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var Component = Ext.extend(Ext.util.Observable, {
constructor : function() {
Component.superclass.constructor.call(this);
}
});
var myComponent = new Component();
myComponent.on("sayGoodbye", function(firstName, lastName) {
alert("Goodbye " + firstName + " " + lastName);
});
myComponent.fireEvent("sayGoodbye", "first", "last");
});
</script>
<div id="div1">asdf</div>
</body>
</html>
Remove event Listener
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var myComponent = new Ext.util.Observable();
myComponent.addEvents("myEventName");
var handlerFn = function(firstName, lastName) {
alert(firstName + " " + lastName);
}
myComponent.on("myEventName",handlerFn);
myComponent.fireEvent("myEventName","asdf","adsf");
myComponent.removeListener("myEventName", handlerFn);
});
</script>
<div id="div1">asdf</div>
</body>
</html>
Unbind the action to the event handler
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var myComponent = new Ext.util.Observable();
myComponent.addEvents("myEventName");
var handlerFn = function(firstName, lastName) {
alert(firstName + " " + lastName);
}
myComponent.on("myEventName",handlerFn);
myComponent.fireEvent("myEventName","asdf","adsf");
myComponent.un("myEventName", handlerFn);
});
</script>
<div id="div1">asdf</div>
</body>
</html>
Use function as an event handler
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var myComponent = new Ext.util.Observable();
myComponent.addEvents("myEventName");
var handlerFn = function(firstName, lastName) {
alert(firstName + " " + lastName);
}
myComponent.on("myEventName",handlerFn);
myComponent.fireEvent("myEventName","asdf","adsf");
});
</script>
<div id="div1">asdf</div>
</body>
</html>