案例代码:
<div onclick="viewType(this);" id="type_select_class" class="selectClass">
<div class="title"><em>类型:</em><span id="current_type_name">全部</span></div>
<ul class="class" id="menu_type_list">
<li onclick="setStyleType('0','全部',event);return false;">全部</li>
<li onclick="setStyleType('001001','可爱',event);return false;">可爱</li>
<li onclick="setStyleType('001002','幽默',event);return false;">幽默</li>
<li onclick="setStyleType('001003','神秘',event);return false;">神秘</li>
<li onclick="setStyleType('007006','东方神起',event);return false;">东方神起</li>
<li onclick="setStyleType('007007','少女时代',event);return false;">少女时代</li>
</ul>
</div>
如上所显示,父类和子标签下都有一个onclick事件,所谓的冒泡就是,点击子类的会连带的触发父类的的事件。从而造成不想要的联动。
解决方案:
<script>
function setStyleType(style_type,sytle_name,event){
//阻止冒泡调用parent
var e = (event) ? event : window.event;
if (window.event) {//IE
e.cancelBubble=true;
} else { //FF
e.stopPropagation();
}
//继续下面的动作。。。。。。
$("#type_select_class").removeAttr("class");
$("#type_select_class").attr("class", "selectClass2");
$("#current_type_name").html(sytle_name);
getItemList();
}
</script>
分享到:
相关推荐
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation) 在JavaScript事件处理机制中,事件冒泡传递是一个重要的概念。当一个元素触发某个事件时,该事件就会沿着DOM树向上传递,直到到达文档的根元素为止...
### JS与jQuery阻止事件冒泡详解 #### 一、引言 在Web开发中,事件处理是不可或缺的一部分,其中事件冒泡机制尤为重要。事件冒泡是指事件从最深层的节点开始,逐级向上传播至最顶层的节点。在某些情况下,我们希望...
### JavaScript中的`preventDefault`与`stopPropagation` #### 一、`preventDefault`详解 `preventDefault`方法在JavaScript中主要用于阻止元素的默认行为。在Web开发中,很多HTML元素都具有默认的行为,例如,`...
在JavaScript中,我们经常需要阻止默认的浏览器行为和事件冒泡,以便实现自定义的功能。在前端开发中,由于浏览器的兼容性问题,理解和掌握这些技术至关重要。下面将详细介绍如何实现这两种功能。 1. **阻止浏览器...
但在 Firefox 3.6.4 中,`event.cancelBubble` 虽然返回 `true`,但并未真正阻止冒泡。 另一方面,`event.stopPropagation()` 是 W3C 标准的事件模型中定义的方法,它在所有现代浏览器(包括 Firefox、Chrome 和 ...
js阻止冒泡 在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容。 代码如下: function stopPro(evt){ var e = evt || window.event; //returnValue如果设置了该属性,它的值比事件句柄的返回值...
代码如下:function stopBubble(e){ if(e&&e.... } else{//IE window.event.cancelBubble=true; } } 如果要阻止默认事件的触发,即默认的href事件,那么就需要调用如下函数: 代码如下:function stopD
本文将详细解析如何使用JavaScript实现这样的功能,重点在于事件委托和阻止冒泡。 首先,我们要理解事件委托的概念。事件委托是基于事件冒泡原理的一种优化策略,它允许我们将事件监听器添加到父元素上,而不是每个...
将这个函数添加到需要阻止冒泡的事件处理函数内部即可实现预期效果。 总的来说,理解和熟练运用`event.stopPropagation()`、`event.cancelBubble`以及`event.preventDefault()`是编写健壮的JavaScript事件处理程序...
为了跨浏览器兼容性,开发者可能需要使用`event.cancelBubble = true`(IE)或`event.stopPropagation()`(W3C标准)来阻止事件冒泡,以及`event.capture = true`(非标准)或`addEventListener`的第三个参数为`true...
总结来说,JavaScript的事件取消和阻止冒泡是控制页面交互行为的关键工具。通过使用`event.preventDefault()`、`event.stopPropagation()`以及IE特有的方法,我们可以精细地管理事件的行为,确保它们按照我们的预期...
`stopPropagation`仅阻止事件的冒泡,但不会阻止默认行为。 示例: ```javascript let btna = document.getElementById('btn'); btna.onclick = function(e) { window.event ? window.event.cancelBubble = ...
1. `cancelBubble`函数内部首先判断浏览器是否支持`stopPropagation`方法,这是W3C标准中的事件阻止冒泡方法。对于不支持此方法的老版本IE浏览器,它会使用`cancelBubble = true`来达到相同的效果。 2. 在`show(info...
在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止...window.event.cancelBubble = true; return false; 2.阻止浏览器的默认行为 JavaScript代码 //如果提供了事件对象,则这是
在旧版浏览器中使用e.cancelBubble=true,在支持标准的浏览器中使用e.stopPropagation()。 3. 在document对象上绑定点击事件,监听整个页面的点击行为。当点击事件发生时,判断点击的目标元素是否是模态框。如果不是...
综上所述,JavaScript中的阻止冒泡和阻止默认行为是非常重要的技术点,它们在处理复杂的事件监听和避免不必要的事件触发时发挥着重要的作用。理解并掌握这些技术对于提升前端开发的交互体验与代码质量具有重要意义。
1. 如何阻止事件冒泡 代码如下://非IE if (event && event.stopPropagation) event.stopPropagation(); else//IE window.event.cancelBubble = true; 2.获取控件ID 代码如下:if (document.all) { //IE alert(...
在使用$event.stopPropagation()或$event.cancelBubble = true阻止事件冒泡时,需要注意的是,这样做可以防止事件继续向上层元素传播,但不会影响当前元素上的其他事件监听器。也就是说,如果当前元素上绑定了多个...