2016-05-23 5 views
1

私はクリック可能なDIVを持っており、このDIVの中にボタンを入れようとしています。ボタンをクリックすると、DIV自体がクリックされたときとは異なるイベントが発生します。バックグラウンドでボタンをクリックするのを止めるにはどうすればいいですか?

現在、ボタンをクリックすると、ボタンと同様にDIVがトリガーされます。ボタンがクリックされたときにDIVがトリガーされるのを止める方法はありますか?

<div class="stack"> 
<div class="background" onclick="alert('background clicked');"> 
    <button onclick="alert('bg-button clicked');" style="left:65px; top:65px; position: absolute;">This is a background button</button> 
    <div class="card"> 
     <button onclick="alert('card-button clicked');">This is a card button</button> 
    </div> 
</div> 

DEMO: https://jsfiddle.net/b3cf91zo/

答えて

3

使用のstopPropagation。

この場合
<div class="stack"> 
     <div class="background" onclick="alert('background clicked');"> 
      <button onclick="alert('bg-button clicked');" style="left:65px; top:65px; position: absolute;">This is a background button</button> 
      <div class="card"> 
       <button id="clickButton">This is a card button</button> 
      </div> 
     </div> 
    </div> 

$("#clickButton").click(function(e) { 
    e.stopPropagation(); 
    alert('card-button clicked') 
}); 

https://jsfiddle.net/mc19ynhw/

1
<div class="stack"> 
    <div class="background" onclick="alert('background clicked');"> 
     <button onclick="alert('bg-button clicked');" style="left:65px; top:65px; position: absolute;">This is a background button</button> 
     <div class="card"> 
      <button onclick="alert('card-button clicked');event.stopPropagation();">This is a card button</button> 
     </div> 
    </div> 
</div> 

ボタンにevent.stopPropagation()を追加クリック。

-2

ここでコードを修正しました。以下でそれを見つけてください。

**

<script> 
function ButtonClick(thisElement){ 
if(thisElement=="BUTTON"){ 
alert("Button Clicked"); 
} 
} 
function DivClicked(thisElement){ 
if(thisElement=="DIV"){ 
alert("div Clicked"); 
} 
} 
</script> 
<div class="stack"> 
    <div class="background" id="back" onclick="DivClicked(event.target.nodeName)"> 
     <button onclick="alert('bg-button clicked');" style="left:65px; top:65px; position: absolute;">This is a background button</button> 
     <div class="card"> 
      <button id="btn1" onclick=" ButtonClick(event.target.nodeName)">This is a card button</button> 
     </div> 
    </div> 
</div> 

**

関連する問題