<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Những cách dùng Event Listener trong JavaScript</title>
<meta name="description" content="Những cách dùng Event Listener trong JavaScript - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Những cách dùng Event Listener trong JavaScript">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;nhung-cach-dung-event-listener-trong-javascript-6811.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/nhung-cach-dung-event-listener-trong-javascript-6811.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/nhung-cach-dung-event-listener-trong-javascript-6811.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Những cách dùng Event Listener trong JavaScript</h1>
		<ul class="list-inline">
			<li>Thứ hai - 27/02/2023 23:58</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Những cách dùng Event Listener trong JavaScript" src="https://st.quantrimang.com/photos/image/2023/02/28/event-listener-java-2.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;"><strong>Thêm tương tác cho trang web</strong>&nbsp;bằng sự kiện không khó. Bạn có nhiều phương pháp để làm việc đó. Hãy cùng Quantrimang.com tìm hiểu nhé!</p>

<p style="text-align: justify;"><img alt="Trình lắng nghe sự kiện" data-i="0" data-was-processed="true" height="340" width="650" /></p>

<p style="text-align: justify;">Trình xử lý sự kiện là một khái niệm quan trọng trong JavaScript. Sự kiện cho phép trang HTML trở nên năng động và có thể tương tác, giúp bạn tạo ra những giao diện người dùng hấp dẫn. Bạn có thể viết code chạy JavaScript khi một sự kiện diễn ra trên DOM.</p>

<p style="text-align: justify;">Một sự kiện có thể xảy ra khi người dùng click vào một thành phần HTML, tải trang hoặc khi một giá trị của trường nhập thay đổi. Bạn có thể viết code thay đổi cấu trúc HTML khi một sự kiện diễn ra. Dưới đây là 3 cách khác nhau mà bạn có thể thêm event listeners - trình lắng nghe sự kiện vào code của bạn.</p>

<h2 style="text-align: justify;">1. Phương thức addEventListener</h2>

<p style="text-align: justify;">Đây là một trong số những phương thức trình lắng nghe sự kiện phổ biến nhất. Nó có 3 tham số:</p>

<ul>
	<li style="text-align: justify;">Một đối tượng đại diện cho sự kiện.</li>
	<li style="text-align: justify;">Một chức năng để xử lý nó.</li>
	<li style="text-align: justify;">Một boolean tùy chọn, useCapture mô tả cách sự kiện lan truyền khắp DOM.</li>
</ul>

<p style="text-align: justify;">Sự kiện này có thể là bất kỳ event DOM đã được xác định trên thành phần mục tiêu. Một chức năng được thiết lập để phản hồi sự kiện đó khi nó xảy ra.</p>

<p style="text-align: justify;">Chức năng này có thể ẩn danh hoặc được đặt tên. Những mục tiêu phổ biến bao gồm một thành phần, thư mục con, tài liệu và cửa sổ hỗ trợ sự kiện.</p>

<p style="text-align: justify;">addEventListener() là phương pháp được đề xuất để quản lý trình xử lý sự kiện trong JavaScript. Nó hoạt động trên bất kỳ mục tiêu sự kiện nào, không chỉ riêng phần tử HTML mà còn hỗ trợ nhiều trình xử lý sự kiện.</p>

<p style="text-align: justify;">Bạn có thể muốn chạy một số code trên DOM. Bạn có thể in văn bản, thực hiện phép tính hoặc hiển thị hình ảnh khi người dùng nhấp vào nút.</p>

<p style="text-align: justify;">Cùng xem xét ví dụ code sau để thấy rõ điều đó:</p>

<pre id="pre0" style="text-align: justify;">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;body&gt;
        &lt;h1&gt;The addEventListener Method With Functions&lt;/h1&gt;
        &lt;button id=&quot;myBtn&quot;&gt;Click Here&lt;/button&gt;
        &lt;p id=&quot;demo&quot;&gt;&lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>

<p style="text-align: justify;">Tiếp theo, thêm trình lắng nghe sự kiện bằng nút bấm này.</p>

<pre id="pre1" style="text-align: justify;">
const element = document.getElementById(&quot;myBtn&quot;);
element.addEventListener(&quot;click&quot;, myFunction1);

function myFunction1() {
    document.getElementById(&quot;demo&quot;).innerHTML += &quot;Fuction executed! &quot;
}</pre>

<p style="text-align: justify;">Khi click vào nút bấm này, text “Functin Executed” hiện trên màn hình như hình bên dưới.</p>

<p style="text-align: justify;"><img alt="Trình lắng nghe sự kiện" data-i="1" data-src="https://st.quantrimang.com/photos/image/2023/02/28/event-listener-java-1.jpg" data-was-processed="true" height="341" src="https://st.quantrimang.com/photos/image/2023/02/28/event-listener-java-1.jpg" width="650" /></p>

<h2 style="text-align: justify;">2. Ủy quyền sự kiện cho addEventListener</h2>

<p style="text-align: justify;">Ủy quyền một sự kiện trong JavaScript là một mẫu được dùng để xử lý nhiều sự kiện. Thay vì thêm một trình lắng nghe sự kiện cho từng thành phần, bạn chỉ cần thêm event listener vào phần tử gốc. Bạn có thể truy cập thành phần đã kích hoạt sự kiện qua thuộc tính .target của đối tượng sự kiện.</p>

<p style="text-align: justify;">Điều này đảm bảo tất cả thành phần mục tiêu đều có hành vi được chia sẻ. Nếu không có nó, bạn sẽ phải tự tay thêm một event listener vào từng nhân tố.</p>

<p style="text-align: justify;">Dưới đây là một ví vụ về ủy quyền sự kiện:</p>

<pre id="pre2" style="text-align: justify;">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;body&gt;
        &lt;h1&gt; Event Delegation on Buttons&lt;/h1&gt;

        &lt;div&gt;
            &lt;button&gt;Button 1&lt;/button&gt;
            &lt;button&gt;Button 2&lt;/button&gt;
            &lt;button&gt;Button 3&lt;/button&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>

<p style="text-align: justify;">Tiếp theo, thêm các event listener vào tất cả các nút bấm chri bằng một số dòng code:</p>

<pre id="pre3" style="text-align: justify;">
const div = document.querySelector(&#039;div&#039;)

div.addEventListener(&quot;click&quot;, (event) =&gt; {
    if (event.target.tagName === &#039;BUTTON&#039;) {
        console.log(&#039;Button clicked&#039;)
    }
});
</pre>

<p style="text-align: justify;">Ủy quyền sự kiện là một mẫu dựa trên Event bubbling. Nó xảy ra khi một nhân tố nhận một sự kiện và chuyển ó tới các thành phần cha và gốc trong DOM. Đây cũng là một khái niệm lan truyền event mặc định diễn ra trong JavaScript.</p>

<h2 style="text-align: justify;">3. Dùng thuộc tính onclick</h2>

<p style="text-align: justify;">Bạn có thể dùng thuộc tính onclick để chạy JavaScript khi người dùng click vào một thành phần. Giống như phương thức addEventListener, bạn có thể dùng onclick để in text, thực hiện tính toán và thay đổi các đặc điểm thành phần trên DOM.</p>

<p style="text-align: justify;">Bạn có thể thêm event listener onclick dưới dạng trình xử lý sự kiện nội tuyến vào phần tử HTML. Sự kiện này xảy ra khi người dùng click vào thành phần đó. Thay đổi màu của đoạn sau bằng phương thức onclick:</p>

<pre id="pre4" style="text-align: justify;">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;body&gt;
        &lt;h1&gt; Execute onClick Events&lt;/h1&gt;
        &lt;p id=&quot;demo&quot; onclick=&quot;myFunction()&quot;&gt;
           Click me to change my text color.
       &lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>

<p style="text-align: justify;">Trong file JavaScript, thêm code sau:</p>

<pre id="pre5" style="text-align: justify;">
function myFunction() {
   document.getElementById(&quot;demo&quot;).style.color = &quot;red&quot;;
}</pre>

<p style="text-align: justify;">Kết quả:</p>

<p style="text-align: justify;"><img alt="Triển khai sự kiện onclick" data-i="2" data-src="https://st.quantrimang.com/photos/image/2023/02/28/event-listener-java-2.jpg" data-was-processed="true" height="341" src="https://st.quantrimang.com/photos/image/2023/02/28/event-listener-java-2.jpg" width="650" /></p>

<p style="text-align: justify;">Bạn có thể tạo ra nhiều tính năng khác nhau bằng<strong>&nbsp;event listener trong JavaScript</strong>, bao gồm bubbling và capturing event. Hiểu những khái niệm này sẽ giúp bạn tạo ra các interface năng động cho ứng dụng.</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/nhung-cach-dung-event-listener-trong-javascript-6811.html" title="Những cách dùng Event Listener trong JavaScript">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/nhung-cach-dung-event-listener-trong-javascript-6811.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=b1B8Fok0" width="1" height="1" /></div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>