我设置了几个事件触发器,以便在用户单击特定元素外部时关闭它们。这对于非移动设备非常有效,但在手机或平板电脑上它们不会触发。我假设这是因为点击事件的触发方式与点击事件不同。关于如何解决这个问题以便函数涵盖这两个方面有什么建议吗?
// Listen for unique event targets
$(document).on( 'click', function(event) {
if (!$(event.target).closest( '.modal .content' ).length) {
$( '.modal' ).fadeOut(200);
}
if (!$(event.target).closest( '.language-selector ul' ).length) {
if ( $( '.language-selector' ).is( ':visible') ) {
$( '.language-selector >' ).removeClass('active');
}
}
if (!$(event.target).closest( '.searchbox' ).length) {
if ( $( '.searchfield' ).is( ':visible') ) {
$( '.searchfield' ).removeClass('active').parents( '.searchbox' ).find( 'input[type="submit"]' ).removeClass( 'active' );
}
}
});
最佳答案
是的,点击和点击是不同的事件。
您可以使用 JQuery 选择器语法(点击点击)
绑定(bind)两者:
// Listen for unique event targets
$(document).on( 'click tap', function(event) {
if (!$(event.target).closest( '.modal .content' ).length) {
$( '.modal' ).fadeOut(200);
}
关于jquery - 元素外部的事件触发器不会在点击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30639583/