2017-10-16 15 views
0

こんにちは、みんな助けてもらえますか?表示するイベントをトリガーした後に隠れたdivを表示させたいのですが、ここでdivをマウスで削除してください。マウスを外に出した後に隠れたdivを表示する方法

<div id='MainContainer'> 
    <div id='btn-img' onmouseover='DisplayHidden()'>content 1</div> 
    <div id='container2'>content 2</div> 
</div> 

function DisplayHidden() 
{ 
    $('#container2').show(); 
} 

は可能ですか?ここで

+0

あなたはmainContainerをクリックすると、それが何度も何度も子供 だならば、それはショーは、アラート、他の容器に同じdivの右側にしている場合clickinことを意味します(「なし」 ) –

+0

@Dipakチャブダはいそうです – Kyle

答えて

1

あなたはより多くの属性との比較パラメータを追加したい場合は、あなたが簡単にそれを追加することができ、属性バインディングが動的であるので、私はこの方法を好みました。ここで

$(document).ready(function(){ 
 
     $("#MainContainer > div").on("click",function(e){  
 
      if(false === !!$(this).attr('data-click')){  \t 
 
       $(this).attr("data-click", true); 
 
       alert('No'); 
 
      }else{   
 
       alert('Clicking on same div'); 
 
      } 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='MainContainer'> 
 
     <div id='container1'>content 1</div> 
 
     <div id='container2'>content 2</div> 
 
    </div>

+0

すてきな答えをありがとう!魅力のように働く – Kyle

+1

@kyle:コミュニティが構築されている理由 –

0
var lastClick = null; 

$('div#MainContainer div').click(function() { 

    var clickedId = $(this).attr('id'); 

    if (clickedId == lastClick) { 
     alert('Clicked the same div'); 
    } 
    else { 
     alert('Clicked on a different div'); 
     lastClick = clickedId; 
    } 
}); 
0

無地JavaScriptを使用して簡単な解決策:

var g_lastTarget = null 

var g_handleClick = function(e) { 
    var target = e.currentTarget 

    if (g_lastTarget === target) { 
    alert('You clicked the container twice. Container ID = ' + target.id) 
    } 

    g_lastTarget = target 
} 

var c1 = document.getElementById('container1') 
var c2 = document.getElementById('container2') 

c1.addEventListener('click', g_handleClick) 
c2.addEventListener('click', g_handleClick) 
0

が望ましい要素を選択するために、一般的なクラス&使用querySelectorAllを作成します。

次に、eventListenerメソッドをitにループします。現在クリックされている要素のIDを格納する変数を作成します。その後、変数の値とIDが同じかどうかをチェックします。それが同じであれば、警告を発する。

var getElements = document.querySelectorAll(".elem"); 
 
var clickedElem = ""; 
 
getElements.forEach(function(item) { 
 
    item.addEventListener('click', function() { 
 
    if (item.id === clickedElem) { 
 
     alert('Clicking on same div') 
 
    } else { 
 
     clickedElem = item.id 
 
    } 
 

 
    }) 
 
})
<div id='MainContainer'> 
 
    <div id='container1' class="elem">content 1</div> 
 
    <div id='container2' class="elem">content 2</div> 
 
</div>

1

純粋なJavaScriptを使用して、あなたは何ができるかです。

clickイベントをコンテナ要素にバインドし、event.target属性を使用して前のクリック要素を確認し、適切な処置を講じます。

Event.target documentation on MDN

document.addEventListener("DOMContentLoaded", function() { 
 
    var prevElement = null; 
 
    document.querySelector("#MainContainer").addEventListener("click", function(event) { 
 
    if (prevElement === event.target) { 
 
     console.log("Yes") 
 
    } else { 
 
     console.log("No"); 
 
    } 
 
    prevElement = event.target; 
 
    }); 
 
});
<div id='MainContainer'> 
 
    <div id='container1'>content 1</div> 
 
    <div id='container2'>content 2</div> 
 
</div>

関連する問題