បន្ថែម​​​ឬ​លុបហេតុការណ៍

កន្លង​មក​ ការភ្ជាប់​ហេតុការណ៍ onclick ទៅ​នឹង​ក្បួន​វិធី​ទាំងឡាយ ​ត្រូវ​បាន​ធ្វើ​ឡើង​នៅ​ក្នុង​ធាតុ HTML ផ្ទាល់​តែ​ម្តង​ តាម​រយៈ​សម្បត្តិ onclick នៃ​ធាតុ HTML ។ ប្រការ​នេះ​ធ្វើ​អោយ​មាន​ការលំបាក បើ​សិន​ជា​យើង​ចង់​លុប​ហេតុការណ៍ onclick ​នេះ​ចេញ​ពី​ធាតុ HTML វិញ​។ ហើយ​បើ​សិន​ជា​ហេតុការណ៍ onclick នេះ​ត្រូវ​បាន​ភ្ជាប់​ទៅ​នឹង​ធាតុ HTML ដ៏​ច្រើន​លើស​លប់ យើង​កាន់​តែ​មាន​ការលំបាក​កាន់​តែ​ច្រើន​ឡើង​។

ដើម្បី​ដោះស្រាយ​បញ្ហា​ខាង​លើ​នេះ ក្រុម​អ្នក​ឯកទេស​ភាសា JS បាន​បង្កើត​វិធី​ចំួន​ពីរ​គឺ​វិធី addEventListener() សំរាប់​បង្កើត​ហេតុការណ៍​ចេញ​ពី​ធាតុ HTML និង​ភ្ជាប់​ហេតុការណ៍​ទៅ​នឹង​ក្បួន​ឬ​វិធី​ឆ្លើយ​តប​ហេតុការណ៍​ទាំងឡាយ​។ ចំណែក​ឯ​វិធី​ឈ្មោះ removeEventListener() វិញ ត្រូវ​ប្រើប្រាស់​សំរាប់​លុប​ហេតុការណ៍​​ចេញ​ពី​ធាតុ HTML ។

សរុបមក ​យើង​មាន​មធ្យោបាយ​ពីរ​ក្នុង​ការបង្កើត​ហេតុការណ៍ onclick ​ចេញ​ពី​ធាតុ HTML ណាមួយ - មធ្យោបាយ​ទី​មួយ គឺ​ប្រើប្រាស់​សម្បត្តិ onclick របស់​ធាតុ HTML មធ្យោបាយ​ទី​ពីរ គឺ​ប្រើប្រាស់​វិធី​មាន​ស្រាប់​ឈ្មោះ addEventListener() ។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖
<!DOCTYPE html>
<html>
  <head>
    <link href='https://fonts.googleapis.com/css?family=Odor+Mean+Chey' rel='stylesheet'>
  </head>
  <body style="font:14px/1.5 'Odor Mean Chey'">
    <input id="ch-color" type="button" value="ប៊ូតុងចុច" />
    <input type="color" id="favcolor"  value="#ff0000">
    <script>
       function myFunction(){
         var color = document.getElementById("favcolor").value;
         document.getElementsByTagName("body")[0].style.backgroundColor = color;
       }

       var btn = document.getElementById("ch-color");
       btn.addEventListener("click", myFunction);
    </script>
  </body>
</html>

នៅ​ក្នុង​កម្មវិធី​ខាង​លើ​នេះ នៅ​លើ​បន្ទាត់​លេខ 16 យើង​សង្កេត​ឃើញ​ថា ហេតុការណ៍ click ឬ onclick ត្រូវ​បាន​បន្ថែម​ចូល​ទៅ​ក្នុង​ប៊ូតុង​ចុច​មាន​អត្តសញ្ញាណ​ជា "ch-color" ហើយ​ក្បួន​ឈ្មោះ myFunction ក៏​ត្រូវ​បាន​ភ្ជាប់​ទៅ​នឹង​ហេតុការណ៍​ឈ្មោះ click នោះ​ដែរ​។ ជា​លទ្ធផល បើ​យើង​ចុច​ប៊ូតុង​នោះ ពណ៌​របស់​ផ្ទៃ browser នឹង​ដូរ​ទៅ​តាម​ពណ៌​ដែល​ត្រូវ​បាន​ជ្រើសរើស​នៅ​លើ​ប៊ូតុង​រើស​ពណ៌​។ មួយ​វិញ​ទៀត បើ​សិន​ជា​យើង​ចង់​លុប​ហេតុការណ៍ click នោះ​ចេញ​ពី​ប៊ូតុង​ចុច​នោះ​វិញ យើង​ត្រូវ​ធ្វើ​ដូច​គ្នា គ្រាន់​តែ​ប្រើប្រាស់​វិធី​ឈ្មោះ removeEventListener ជំនួស​អោយ​វិធី addEventListener គឺ​ជា​ការស្រេច​៕