photoswipeプラグインを使用しています。閉じるボタンをタップすると、フォトスワイプが閉じます。ただし、photoswipeが非表示になった後、photoswipedivの下にある画像でdivtapイベントがトリガーされました。この動作を防ぐにはどうすればよいですか?例えば:
<!DOCTYPE HTML >
<html>
<head>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript" src="jquery.mobile-1.0a4.1.js"></script>
<style type="text/css">
div
{
width: 300px;
height: 300px;
}
.first
{
background-color: black;
}
.second
{
width: 200px;
height: 200px;
position: absolute;
top : 50px;
left: 50px;
background-color: red;
z-index: 2;
}
</style>
<script type="text/javascript">
$(function()
{
$('.first').tap(function()
{
$(this).css({backgroundColor : 'green'});
});
$('.second').tap(function()
{
$(this).hide();
});
})
</script>
</head>
<body>
<div class='first'></div>
<div class='second'></div>
</body>
</html>
仕組み-2番目のdivをタップします-2番目のdiv
でタップイベントを起動します-2番目
のdivを非表示
にします-最初のdivでタップイベントを起動します
私が欲しいもの
-tapseconddiv
-fired tap event on second div
-seconddivhide-
何も起こらない
最初のdivでタップイベントが発生しないようにするには、2番目のdivタップハンドラーで何をする必要がありますか?
例を変更して、どのイベントがトリガーされたかを確認しました
$(function()
{
$('.first').bind('vmousedown',function()
{
info('vmousedown first' )
}).bind('vmouseup', function(){
info('vmouseup first')
})
.bind('click',function(){
info('click first');
}).bind('tap', function(){
info('tap first');
});
$('.second').bind('vmousedown',function()
{
info('vmousedown second' )
}).bind('vmouseup', function(){
info('vmouseup second');
})
.bind('click',function(){
info('click second');
}).bind('tap', function(){
info('tap second');
$(this).hide();
});
});
PC出力:
vmousedown2番目
のvmouseup2番目の
クリック2番目の
タップ2番目
Android:vmousedown2番目
のvmouseup2番目の
タップ2番目
のvmousedown最初の
vmouseup最初の
クリック最初の
タップ最初