我有一个div
,里面有一些元素。
我的父div
使用test()
具有onClick
功能。
在父级div中,使用quickView()
有一个onClick
函数。
现在,当我点击quickView()
函数时,test()
函数被触发了。
<div onClick="test();" class="product-inner">
<h5 class="product-title height-40-px">
title
</p>
</h5>
<hr class="mt8 mb8">
<div class="product-meta">
<ul class="product-price-list">
<li><span class="product-save dir-to-right"><strong>7500</strong></span>
</li>
<li><span class="product-old-price dir-to-right">120,000</span>
</li>
<li><span class="product-price">%95</span>
</li>
</ul>
<hr class="mt0 mb0 mr6 hr-blue">
<div class="col-md-12 mt10">
<span class="col-md-6">
۹ <i class="fa fa-users"></i>
</span>
<span class="col-md-6">
<p class="font-size-12 display-inline">
zone
<i class="fa fa-map-marker"></i>
</p>
</span>
</div>
<ul class="product-actions-list mt35">
<li><a data-original-title="add cart" class="btn btn-cart btn-sm popup-text" href="#product-quick-view-add-to-cart" onclick="quickView(18730);" data-effect="mfp-move-from-top" data-toggle="tooltip" data-placement="top" title="">cart <i class="fa fa-shopping-cart"></i></a>
</li><li><a href="" class="btn btn-buy btn-sm">details <i class="fa fa-eye"></i></a>
</li>
</ul>
</div>
</div>
答案 0 :(得分:2)
使用driver.get_cookies()
阻止点击事件传播到父级。这就是你如何使用它。
P.S。 IE支持event.stopPropagation()
而不是e.cancelBubble
e.stopPropagation()
&#13;
function quickView(value, e) {
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
console.log(value);
}
function test() {
console.log('test Fired');
}
&#13;
答案 1 :(得分:1)
单击事件从点击的内部元素冒泡到文档根目录,通过所单击元素的所有父项。为了阻止它传播,你应该使用 - event.stopPropagation();
答案 2 :(得分:1)
事件冒泡是如何起作用的。首先,在实际被点击的元素上触发click事件(在你的情况下为a.btn.btn-cart),然后它向上并通过test()到达父div。您可以通过将事件传递给quickView()函数并调用event.stopPropagation()来阻止进一步的事件传播。然后,您的HTML应如下所示:
<a class="btn btn-cart btn-sm popup-text" onclick="quickView(event, 18730);">Cart</a>
你的JavaScript函数:
function quickView(event, number) {
event.stopPropagation();
console.log(number) // Do some stuff with the passed ID.
}