📜  juqey 关闭点击 - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:27.033000             🧑  作者: Mango

JavaScript中的event.preventDefault()方法和event.stopPropagation()方法

当我们在Web应用程序中使用JavaScript处理用户输入时,经常需要阻止各种事件的默认行为,或防止事件的冒泡(即停止事件从子元素传播到父元素)。这时,就可以用到JavaScript中的event.preventDefault()方法和event.stopPropagation()方法。

event.preventDefault()

event.preventDefault()方法用来阻止事件发生时浏览器执行默认的操作。比如,当用户单击链接时,浏览器会默认打开该链接所在的网页。但是,有时候我们希望单击链接时只执行自己编写的脚本,而不希望浏览器打开链接,这时就可以使用event.preventDefault()方法。

document.querySelector('a').addEventListener('click', function(event) {
  event.preventDefault();
  // 在这里添加其他代码
});

上面的代码添加了一个单击事件监听器,当用户单击页面上的任何<a>元素时,会阻止浏览器默认打开链接的行为,并执行该监听器中的其他代码。

event.stopPropagation()

event.stopPropagation()方法用来停止事件的传播,即阻止事件从子元素冒泡到父元素,或从父元素冒泡到更高层次的祖先元素。

document.querySelector('.child').addEventListener('click', function(event) {
  event.stopPropagation();
  // 在这里添加其他代码
});

document.querySelector('.parent').addEventListener('click', function(event) {
  // 这里的代码不会执行
});

上面的代码添加了两个事件监听器,一个放在子元素上,一个放在父元素上。当用户单击子元素时,会阻止事件从子元素冒泡到父元素,因此父元素上的监听器不会执行,只会执行子元素上的监听器中的代码。

以上是event.preventDefault()event.stopPropagation()两个方法的介绍。在实际开发中,需要结合具体场景和需求使用它们,以达到更好的用户体验。