2016-06-20 1 views
0

Ich wollte ein Element auf Klick eines Div in Ipad/mobile Geräte zeigen/verstecken. Ich habe Touchstart- und Touchend-Events verwendet. Aber ich möchte das touchend-Ereignis für das div-Element ".view-list" stoppen, damit das .viewlist-popup nicht sofort ausgeblendet wird.jquery touchend Ereignis für das gesamte Dokument mit Ausnahme der div, die angeklickt wird (getappt)

<div class="view-list">VIEW LIST 
      <div class="viewlist-popup"> 
      <ul> 
       <li>1</li> 
       <li>2</li> 
       <li>3</li> 
       </ul> 
      </div> 
</div> 


$('.view-list').bind('touchstart', function() { 
    $(this).find('.viewlist-popup').show(); 
}); 

$(document).bind('touchend', function() { 
    $('.view-list').find('.viewlist-popup').hide(); 
}); 

Antwort

0

Sie sollten es durch Ereignisziel filtern:

$(document).bind('touchend', function(e) { 
    if($(e.target).hasClass('view-list')) return; 
    $('.view-list').find('.viewlist-popup').hide(); 
}); 

Und wenn Sie nicht, es verbergen wollen auf zu jeder seiner decendants berühren:

if($(e.target).closest('.view-list').length) return; 
Verwandte Themen