我有一个嵌套了多个元素的div。如果按下div,则按钮出现在同一个DIV中。如果我按下按钮,按钮也会消失(这是因为div上的toggleClass)
我已经尝试过回来了,但那也不行。请参阅下面的JSFiddle
$(document).on('click', "[data-link=level1]", function() {
console.log("li clicked");
$(this).find(".knoppenbalk").toggleClass("displaynone");
});
$(document).on('click', "[data-link=solo]", function() {
console.log("solo BUTTON clicked");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-link="level1" class="limodeknop">
<div class="overlay"></div>
<div class="modeknop">
<div class="titel">
<lrmodenaam>Level 1</lrmodenaam>
<lrsubmode>Tutorial</lrsubmode>
</div>
<div class="knoppenbalk displaynone">
<div data-link="solo" class="solo btn">Solo</div>
</div>
</div>
</div>
&#13;
这是用jQuery制作的,我和Framework7一起工作,但我不认为这是一个问题。
答案 0 :(得分:3)
您应该停止事件的传播(调用冒泡)。你可以搜索大量关于它的文章。
http://jsfiddle.net/p168uLv2/1/
$(document).on('click',"[data-link=solo]", function(e){
console.log("solo BUTTON clicked");
e.stopPropagation();
});
这仅适用于子元素,以避免父点击传播。
答案 1 :(得分:1)
您可以使用以下命令停止传播到父元素的事件:
YBO_CRNCY
您需要接受EUR
作为内联函数的参数。
答案 2 :(得分:1)
$(document).on('click',"[data-link=solo]", function(e){
e.stopImmediatePropagation();
console.log("solo BUTTON clicked");
})