JavaScript DHTML/Ext JS/Event — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 07:21, 26 мая 2010

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>