【发布时间】:2012-11-20 00:34:57
【问题描述】:
<div class="parent">
<div class="child">
</div>
</div>
<script type="text/javascript">
$(document).on("click", ".parent", function(event){
doAjaxCall();
});
$(document).on("click", ".child", function(event){
doSomething(); // and DON'T call doAjaxCall();
});
</script>
event.stopPropagation(); 和 return false; 也不起作用。可能是什么问题呢?
编辑:好的,显然它正在处理 js fiddle:http://jsfiddle.net/Smbb4/ 我必须再次检查我的代码..
Edit2:解决方案:
$('.parent').click(function(event) {
if ( $(event.target).closest('.child').length > 0 ) {
var close = $(event.target).closest('.child');
var windowID = close.data('windowid');
closeWindow(windowID);
return false;
}
});
【问题讨论】:
-
上个月我遇到了一个关于同步 AJAX 调用、preventDefault()/stopPropagation() 和 Firefox 的奇怪问题。似乎在 Firefox 下的 keydown 处理程序中使用同步 AJAX 调用时,默认行为总是被传播。更多信息在这里:stackoverflow.com/questions/13360035/…这是你的用例吗?