【问题标题】:jquery mobile tapping event?jquery移动点击事件?
【发布时间】:2012-01-11 03:49:02
【问题描述】:

jQuery Mobile 建议使用点击事件而不是点击事件,因为点击会增加延迟。

如果我有:

   <a id="someID" href="#" onclick="someFunction(); return false">asd </a>

如何将其更改为内联点击事件?

我可以这样做:

$('#someID').live('tap',function(event) { ... });

但不想在我的脚本中有 ID,所以更喜欢内联调用函数

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    您想要这个解决方案吗?

    HTML:

    <div ontap="test()">TAP ME</div>
    

    脚本:

    $('[ontap]').each(function(){
        $(this).on("tap", new Function($(this).attr("ontap")));
    });
    

    【讨论】:

    • 添加点击事件功能的巧妙方法,但它如何处理动态内容(加载后插入到 DOM),这在移动应用程序中经常处理?
    • @DustinDempsey 请在下面查看我的答案。这适用于动态添加的内容。 :) 希望这会有所帮助!
    【解决方案2】:

    没有像ontap="someFunction()" 这样的“inline 点击事件”,因为tapjQuery Mobile 构造。

    摘自 jQuery Mobile 源代码(注意 'tap' 事件):

    // add new event shortcuts
    $.each(("touchstart touchmove touchend orientationchange throttledresize " +
            "tap taphold swipe swipeleft swiperight scrollstart scrollstop" )
            .split( " " ),
            function( i, name ) { ...
    

    更多信息:

    http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.js

    【讨论】:

    • 我不完全明白,但为什么 jMobile 不将内联 'ontap' 属性解析为 'tap' 事件?听起来没那么复杂..
    • @StewieGriffin 恕我直言,使用inline event handlers一般回避并被认为是不好的做法。所以我怀疑 jQuery 开发人员会想要支持这样的 API...
    • 我更喜欢写 ontap="doSmth()" 内联,这将转换为 'tap' 事件获取 id 和代码后面的函数。在这种情况下,您的脚本中不需要硬编码 ID,没有依赖项.. 无论如何,感谢您的解释
    • @StewieGriffin 我同意让 jQuery Mobile 为内联事件处理程序解析文档会更容易(在您的场景中),但作为标准在浏览器中实现会更好。如果我们在移动浏览器中看到这些mobile specific inline event handlers,我不会怀疑在不久的将来......
    【解决方案3】:

    您可以通过以下方式将所有元素绑定到 ontap 属性:

    $(document).on('tap', '[ontap]', function(){
         new Function($(this).attr('ontap'))();
    });
    

    这适用于整个文档,甚至是动态添加的文档(当然还有 ontap 属性)。

    实际上,您可以在 HTML 中替换任何属性名称“tap”、“tapped”,并在上面的脚本中将“ontap”相应地更改为您想要的属性。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多