【问题标题】:Javascript Events are not working in Tablet-pc?Javascript 事件在平板电脑中不起作用?
【发布时间】:2012-02-14 21:13:21
【问题描述】:

我在 asp.net 3.5 中开发了一个 Web 应用程序。它消耗了大量的 javascript/JQuery 事件并在 pc 的普通浏览器中正常工作,但我的客户说这些在 tablet-pc/android 和 IPad 中不起作用。就像我有一个下拉列表,我在其中触发了 javascript 中的按键和鼠标单击事件,这些在普通浏览器中完美运行,我需要在 iPad 和 android 平板电脑中处于工作状态。

【问题讨论】:

  • 好吧,您不会免费(轻松)获得所有东西,考虑到在 iPad 和 Android 设备上,单击和双击的概念与 PC 上的不同。虽然 jQuery 是支持跨浏览器客户端编程的一个非常好的选择,但它取决于您如何使用它。详情请查看此:stackoverflow.com/questions/475674/…
  • 我认为这个链接只针对android用户,但我的目标是普通的windows pc浏览器、平板电脑和iPad。

标签: jquery android asp.net ipad tablet


【解决方案1】:

您可以使用组合并尝试 touchstart 而不是 tap

('myelement').bind('touchstart click', function(event){
   myClickFunction();   
});

【讨论】:

    【解决方案2】:

    点击事件在 iPad 上不起作用,因为它是触摸屏 - 我猜是点击与触摸。您是否考虑过使用 JQueryMobile 而不是 JQuery?我针对触摸设备进行了优化 - 正如网站首页上所说的那样。

    而不是使用点击它有一个完整的主机events you can hook into,即点击、滑动、点击等......将相同的功能挂接到点击和点击事件中就很容易了,即

    ('myelement').bind('click', function(event){
       myClickFunction();   
    });
    
    ('myelement').bind('tap', function(event){
       myClickFunction();   
    });
    

    可能(几乎可以肯定)有更优雅的方法来做到这一点 - 但这只是一个开始。

    【讨论】:

    • 你可以这样做:$('myelement').bind('click', myClickFunction ).bind('tap', myClickFunction ); 让代码看起来更漂亮
    • 我在那里添加了一个新的下拉列表,并在那里触发了 selectedIndexCHanged 的​​正常事件,它可以工作。因为在触摸屏中,我们不需要触发任何左箭头或下箭头或其他事件。到目前为止,我正在等待我的客户。我希望它也能在他的机器上运行,因为它在我的机器上运行。
    【解决方案3】:

    触摸屏设备有触摸事件:

    touchstart: a finger is placed on a DOM element.
    touchmove: a finger is dragged along a DOM element.
    touchend: a finger is removed from a DOM element.
    

    也许您想尝试使用这些。话虽如此,最好使用像change(或与元素内联的onchange)这样的事件作为下拉列表,因为无论它发生什么变化(键盘、鼠标事件或触摸事件),它都会起作用。

    Here 是了解更多信息的资源。

    【讨论】:

      猜你喜欢
      • 2014-06-25
      • 2013-06-14
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多