【发布时间】:2025-12-16 09:15:02
【问题描述】:
我有一个类 body_left_details 的子 div,它位于类 body_left_bar 的父 div 中。两个 div 都附加了一个 onclick 事件,但我想防止在单击 body_left_details 时出现 body_left_bar 冒泡。以下是相关代码:
$(function() {
$('.body_left_bar').click(function() {
body_right_load('parent');
})
$('.body_left_details').click(function(e) {
e.stopPropagation();
body_right_load('child');
})
})
function body_right_load(str) {
alert(str);
}
足够简单。但是为什么当我点击body_left_details时,没有调用body_right_load('child')?我在 e.stopPropagation() 之后直接使用 alert() 进行了测试,效果很好。 stopPropagation 后是否不允许使用外部函数?这会被认为是冒泡吗?
在 Chrome 中的 Windows 7 wamp 上进行测试。任何见解都值得赞赏!
编辑:Relevant jsfiddle。单击父 div 将导致警报,但单击“阅读它”不会产生任何结果。
【问题讨论】:
-
这可能与
body_right_load()的声明方式真的有关。如果它真的看起来像您发布的内容,它会起作用。 -
请提供一个演示问题的小提琴。
-
确实,我已经稍微降低了总体布局,但我已将 body_right_load 更改为如上所示,但仍然没有触发。给我一分钟小提琴。
-
jsfiddle.net/nqFH4 就像一个魅力。
-
Uncaught ReferenceError: aid is not defined(第 ~38 行)
标签: javascript jquery stoppropagation