MooTools - การจัดการเหตุการณ์

เช่นเดียวกับ Selectors การจัดการเหตุการณ์เป็นแนวคิดที่สำคัญของ MooTools แนวคิดนี้ใช้เพื่อสร้างเหตุการณ์และการดำเนินการสำหรับเหตุการณ์ เราต้องเข้าใจถึงการกระทำและผลกระทบของมันด้วย ให้เราลองใช้เหตุการณ์สองสามเหตุการณ์ในบทนี้

คลิกซ้ายเพียงครั้งเดียว

เหตุการณ์ที่พบบ่อยที่สุดในการพัฒนาเว็บคือคลิกซ้ายครั้งเดียว ตัวอย่างเช่นไฮเปอร์ลิงก์จะจดจำเหตุการณ์การคลิกเพียงครั้งเดียวและนำคุณไปยังองค์ประกอบ DOM อื่น ขั้นตอนแรกคือการเพิ่มเหตุการณ์การคลิกในองค์ประกอบ DOM ให้เราใช้ตัวอย่างที่เพิ่มเหตุการณ์การคลิกลงในปุ่ม เมื่อคุณคลิกที่ปุ่มนั้นก็จะแสดงข้อความ

ตัวอย่าง

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var clickFunction = function(){
            //put whatever you want to happen in here
            document.write('This button element recognizes the click event');
         }
         
         window.addEvent('domready', function() {
            $('id_name').addEvent('click', clickFunction);
         });
      </script>
   </head>
   
   <body>
      <input type = "button" id = "id_name" value = "click here"/>
   </body>
   
</html>

คุณจะได้รับผลลัพธ์ต่อไปนี้ -

เอาต์พุต

เมื่อคุณคลิกที่ปุ่มคุณจะได้รับข้อความต่อไปนี้ -

This button element recognizes the click event

Mouse Enter และ Mouse Leave

Mouse Enter และ Mouse Leave เป็นเหตุการณ์ที่พบบ่อยที่สุดในการจัดการเหตุการณ์ การดำเนินการจะถูกนำไปใช้ตามตำแหน่งของเมาส์ หากตำแหน่งของเมาส์ถูกป้อนเข้าไปในองค์ประกอบ DOM ก็จะใช้การกระทำเดียว หากออกจากพื้นที่องค์ประกอบ DOM ก็จะใช้การดำเนินการอื่น

ให้เรายกตัวอย่างที่อธิบายวิธีการทำงานของเมาส์ Enter ดูรหัสต่อไปนี้

ตัวอย่าง

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var mouseEnterFunction = function(){
            //put whatever you want to happen in here
            $('result').set('html', "Recognizes the mouse enter event");
         }
         
         window.addEvent('domready', function() {
            $('id_name').addEvent('mouseenter', mouseEnterFunction);
         });
      </script>
   </head>
   
   <body>
      <input type = "button" id = "id_name" value = "Mouse Enter"/> <br/><br/>
      <lable id = "result"></lable>
   </body>
   
</html>

คุณจะได้รับผลลัพธ์ต่อไปนี้ -

เอาต์พุต

หากคุณวางตัวชี้เมาส์ไว้ที่ปุ่มคุณจะได้รับข้อความต่อไปนี้

Recognizes the mouse enter event

ให้เรานำตัวอย่างที่อธิบายว่าเหตุการณ์การปล่อยเมาส์ทำงานอย่างไร ดูรหัสต่อไปนี้

ตัวอย่าง

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var mouseLeaveFunction = function(){
            //put whatever you want to happen in here
            $('result').set('html', "Recognizes the mouse leave event");
         }
         
         window.addEvent('domready', function() {
            $('id_name').addEvent('mouseleave', mouseLeaveFunction);
         });
      </script>
   </head>
   
   <body>
      <input type = "button" id = "id_name" value = "Mouse Leave"/><br/>
      <lable id = "result"></lable>
   </body>
   
</html>

คุณจะได้รับผลลัพธ์ต่อไปนี้ -

เอาต์พุต

หากคุณวางตัวชี้เมาส์ไว้ที่ปุ่มคุณจะได้รับข้อความต่อไปนี้

Recognizes the mouse leave event

ลบเหตุการณ์

วิธีนี้ใช้เพื่อลบเหตุการณ์ การลบเหตุการณ์นั้นง่ายพอ ๆ กับการเพิ่มเหตุการณ์และเป็นไปตามโครงสร้างเดียวกัน ดูไวยากรณ์ต่อไปนี้

ไวยากรณ์

//works just like the previous examplesuse .removeEvent method
$('id_name').removeEvent('mouseleave', mouseLeaveFunction);

การกดแป้นพิมพ์เป็นอินพุต

MooTools สามารถรับรู้การกระทำของคุณ - ประเภทของอินพุตที่คุณให้ผ่านองค์ประกอบ DOM โดยใช้ไฟล์keydown คุณสามารถอ่านแต่ละคีย์จากองค์ประกอบ DOM ประเภทอินพุต

ให้เรายกตัวอย่างในนั้นมีองค์ประกอบพื้นที่ข้อความ ตอนนี้ให้เราเพิ่มเหตุการณ์คีย์ดาวน์ลงในพื้นที่ข้อความซึ่งเมื่อใดก็ตามที่พื้นที่ข้อความรู้จักที่เก็บคีย์ใด ๆ ก็จะตอบกลับด้วยข้อความแจ้งเตือนทันที ดูรหัสต่อไปนี้

ตัวอย่าง

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var keydownEventFunction = function () {
            alert('This textarea can now recognize keystroke value');
         };
         
         window.addEvent('domready', function() {
            $('myTextarea').addEvent('keydown', keydownEventFunction);
         });
      </script>
   </head>
   
   <body>
      Write Something: <textarea id = "myTextarea"> </textarea>
   </body>
   
</html>

คุณจะได้รับผลลัพธ์ต่อไปนี้ -

เอาต์พุต

พยายามป้อนบางสิ่งลงในพื้นที่ข้อความ คุณจะพบกล่องแจ้งเตือนพร้อมกับข้อความต่อไปนี้

This textarea can now recognize keystroke value

ลองเพิ่มข้อความลงในตัวอย่างเดียวกับที่อ่านค่าจากพื้นที่ข้อความเมื่อคุณป้อนเข้าไป เป็นไปได้โดยใช้event.keyฟังก์ชั่นกับเหตุการณ์ ดูรหัสต่อไปนี้

ตัวอย่าง

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         //notice the parameter "event" within the function parenthesis
         var keyStrokeEvent = function(event){
            var x = event.key;
            alert("The enter value is: "+x)
         }
         
         window.addEvent('domready', function() {
            $('myTextarea').addEvent('keydown', keyStrokeEvent);
         });
      </script>
   </head>
   
   <body>
      <lable>Write Something:</lable> <br/>
      <textarea id = "myTextarea"> </textarea>
   </body>
   
</html>

คุณจะได้รับผลลัพธ์ต่อไปนี้ -

เอาต์พุต

พยายามป้อนข้อความในพื้นที่ข้อความ คุณจะถูกนำไปที่กล่องแจ้งเตือนพร้อมกับค่าที่คุณป้อนลงในพื้นที่ข้อความ