1.什么是事件冒泡:
页面上有好多事件,也可以多个元素响应一个事件.假如:
<BODY onclick="alert('aaa');">
<div onclick="alert('bbb');">
<a href="#" class="cooltip" title="这是我的超链接提示1。" onclick="alert('ddd');>
提示
</a>
</div>
</BODY>
上面这段代码一共有三个事件,body,div,a都分别绑定了单击事件。在页面中当单击a标签会连续弹出3个提示框。这就是事件冒泡引起的现象。事件冒 泡的过程是:a --> div --> body 。a冒泡到div冒泡到body
2.事件冒泡引发的问题。
本来在上面的代码中只想触发<a>元素的onclick事件,然而<div>,<body>事件也同时 触发了。因此我们必须要对事件的作用范围进行限制。当单击<a>元素的onclick事件时只触发<a>本身的事件。由于IE- DOM和标准DOM实现事件对象的方法各不相同,导致在不同浏览器中获取事件的对象变得比较困难。如果想阻止事件的传递,我们可以用 event.stopPropagation()阻止事件的传递行为.
3.jQuery对这个问题进行了必要的扩展和封装.
$("element").bind("click",function(event){
//event为事件对象
//.........
event.stopPropagation(); //停止事件冒泡
});
4.阻止默认行为
网页中的某些元素是有自己的默认行为的,比如果超链接单节后需要跳转,提交按钮点击后需要提交表单,有时需要阻止这些行为,也就是默认行为。
jquery中可用用preventDefault()的方法来阻止元素的默认行为.
$('#submit').bind('click',function(event){
var username = $('#username').val();
if(username==""){
alert('用户名不能为空!');
event.preventDefault(); //阻止默认行为
}
})
5.jquery中对冒泡和默认行为的阻止方法同样也可以改写,改写后能够达到同样的效果
event.preventDefault(); 改写为: return false;
event.stopPropagation(); 改写为: return false;
推荐大家不要图省事,任何时候都写return false;
一般情况下都是需要阻止默认行为。不要阻止事件冒泡。
分享到:
相关推荐
总之,要解决jQuery中`.on()`事件冒泡问题,推荐的方法是将事件处理器绑定到离目标元素最近的父元素上,并在需要阻止冒泡的情况下,在事件处理函数中调用`e.stopPropagation()`方法。这样做既可以提高程序的性能,也...
为了解决这个问题,jQuery提供了阻止事件冒泡的机制。这里有三种常见的方法: 1. 使用`return false`:在事件处理函数中,`return false`可以阻止事件的默认行为(如链接的跳转)并阻止事件冒泡。例如: ```...
它会自动创建并派发一个事件,然后根据事件冒泡机制触发所有绑定在该事件上的处理器。 例如,假设我们有一个按钮,并希望在某些特定条件下触发一个自定义的事件: ```javascript $(".content").bind("myclick",...
通过为`<span>`元素和外部的`<div>`元素以及`<body>`元素分别绑定点击事件,作者展示了点击`<span>`元素时,由于事件冒泡机制,三个元素的点击事件都会被触发。为了解决这个问题,作者在`<span>`元素的点击事件处理...
首先,理解"冒泡"这一概念,它源于编程中的事件冒泡机制,指的是事件从最深的节点开始,逐级向上层节点传播事件的过程。在这里,我们借用这一概念,让元素在鼠标悬停时像气泡一样从小变大,从而产生视觉上的“冒泡”...
通过上述讨论,我们可以看出 `onmouseout` 事件及其与事件冒泡机制之间的关系对于前端开发者来说非常重要。正确理解和应用这些概念可以帮助我们编写更加高效、可靠的代码。无论是使用 jQuery 还是原生 JavaScript,...
事件冒泡是Web开发中一种常见的事件传播机制。它指的是当一个元素上的事件发生后,如果没有被特定处理,该事件会“冒泡”到父级元素,依此类推,直到到达最顶层的document对象。事件冒泡允许开发者在父元素上设置...
在实际应用中,事件冒泡机制可能会导致非预期的事件触发,比如在一个嵌套的DOM结构中,我们可能只希望在最外层元素上响应`mouseout`事件,但实际上内部子元素的`mouseout`事件也会被触发。 为了解决冒泡导致的问题...
正确的解决方法是将按钮的click事件改为与标题栏相同的mousedown事件,这样在点击按钮时,mousedown事件的阻止冒泡就能防止标题栏的mousedown事件触发。修改后的代码如下: ```html ();"> (event);" href=...
3. **事件处理**:jQuery的事件处理机制封装了原生JavaScript的事件处理,如`.on()`, `.off()`, `.trigger()`等。源码分析能揭示其如何处理事件委托、事件冒泡,以及如何实现跨浏览器的兼容性。 4. **动画效果**:...
这种方法通过在父元素`.ul`上绑定事件,利用事件冒泡机制,可以监听到所有现在和将来添加到`.ul`下的`a`元素的点击事件,从而节省内存并保持性能。 性能分析显示,`Method 2`比`Method 1`更优,因为`Method 1`会为...
2. **事件处理**:介绍jQuery的事件绑定机制,包括基本事件、自定义事件和事件代理,以及事件对象的使用,帮助读者理解事件冒泡和捕获。 3. **动画与效果**:详述jQuery的动画API,如fadeIn/fadeOut、slideUp/...
jQuery的运行机制与设计理念 jQuery作为一个著名的JavaScript库,它的出现极大地简化了Web开发中的DOM操作,解决了跨浏览器兼容性问题,并提供了高效的API。其设计理念主要体现在以下几点: 1. **简洁易用**:...
3. **事件处理**:掌握事件绑定、解绑和触发,了解事件冒泡和事件委托的概念。 4. **动画效果**:学习创建自定义动画和使用预设动画效果,理解动画队列和延迟。 5. **Ajax交互**:理解异步请求的工作原理,学会使用...
- **事件代理**:使用事件冒泡机制优化性能,通过一个共同的父节点来监听子元素发生的事件。 - **触发事件**:`trigger()` 方法用于手动触发一个事件,可以模拟用户操作或者响应某些条件的变化。 ##### 4. 动画与...
JavaScript 事件机制是网页交互的...总之,理解JavaScript事件机制,特别是捕获/冒泡和DOM事件流,对于解决移动端兼容性问题至关重要。通过使用合适的工具和策略,开发者可以创建出具有良好交互体验的跨平台网页应用。
JQuery事件委托是一种高效处理大量动态元素事件绑定的技术,它基于JavaScript中的事件冒泡机制。在HTML结构中,事件通常会从最深的元素向上冒泡到其父元素,直至到达文档的根节点。事件委托就是利用这个特性,将事件...
4. **事件处理**:研究事件绑定和触发机制,理解事件委托和事件冒泡的处理。 5. **Ajax操作**:理解$.ajax方法的实现,以及如何处理异步请求。 6. **动画效果**:探索jQuery是如何实现平滑的动画效果的,如fadeIn、...
此外,jQuery中完善的Ajax功能、行为与结构层的分离、可靠的事件处理机制也同样使得Web后端开发者如虎添翼,使用少量代码就可以实现复杂的功能。特别是新版本1.4.x的发布,jQuery在功能和性能方面都有质的提升,极大...