jquery - 元素外部的事件触发器不会在点击时触发

标签 jquery mobile triggers click tap

我设置了几个事件触发器,以便在用户单击特定元素外部时关闭它们。这对于非移动设备非常有效,但在手机或平板电脑上它们不会触发。我假设这是因为点击事件的触发方式与点击事件不同。关于如何解决这个问题以便函数涵盖这两个方面有什么建议吗?

// 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/

相关文章:

jquery - 返回顶部链接向 URL 插入附加代码

Javascript 在连接期间 chop 字符串

android - HTML 选择标签 : desktop vs mobile

html - 移动 View 上水平滚动画廊的问题

oracle - 在oracle触发器中获取 session os用户

javascript - Typeahead 和第一个单元格选择器

javascript - 异步 JavaScript 动态包含

javascript - Galaxy S4 (Android 4.2.2) Android 默认浏览器中的 setInterval

带有 Sequel Pro 的 MySQL 触发器

java - 在特定日期和时间运行 Liferay 动态调度程序