jquery移动攻丝事件?

jquery移动攻丝事件?,jquery,jquery-mobile,Jquery,Jquery Mobile,jquerymobile建议使用tap事件而不是click事件,因为click会增加延迟 因此,如果我有: <a id="someID" href="#" onclick="someFunction(); return false">asd </a> 但是我不想在我的脚本中有ID,所以我更喜欢内联调用函数,因为它没有“inlinetapping事件”,比如,ontap=“someFunction()”,因为tap是一个jQuery-Mobile构造 摘自jQuer

jquerymobile建议使用tap事件而不是click事件,因为click会增加延迟

因此,如果我有:

   <a id="someID" href="#" onclick="someFunction(); return false">asd </a>
但是我不想在我的脚本中有ID,所以我更喜欢内联调用函数,因为它没有“
inline
tapping事件”,比如,
ontap=“someFunction()”
,因为
tap
是一个
jQuery-Mobile
构造

摘自jQuery移动源代码(注意“点击”事件):

有关更多信息:


您想要这个解决方案吗

HTML:


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

$(document).on('tap', '[ontap]', function(){
     new Function($(this).attr('ontap'))();
});
这适用于整个文档,甚至动态添加的文档(当然带有ontap属性)

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


希望这有帮助

我不完全理解,但为什么jMobile不将let say inline'ontap'属性解析为'tap'事件?听起来没那么复杂。@Studiegriffin IMHO使用
内联事件处理程序通常被回避,被认为是一种不好的做法。因此,我怀疑jQuery开发人员是否希望支持这样的API……我更愿意编写ontap=“doSmth()”内联,它将转换为“tap”事件获取id和代码后面的函数。在这种情况下,脚本中不需要硬代码ID,也不需要依赖项。。无论如何,谢谢你的邀请explanation@StewieGriffin我同意,让jquerymobile为内联事件处理程序解析文档会更容易(在您的场景中),但在浏览器中作为标准实现会更好。我不会怀疑在不久的将来,我们是否会在移动浏览器中实现这些
特定于移动设备的内联事件处理程序
…添加tap事件功能的聪明方法,但它如何处理动态内容(加载后插入DOM)在这样的移动应用程序中,经常会遇到哪些问题?@DustinDempsey请参见下面我的答案。这将适用于动态添加的内容。:)希望这有帮助!
// add new event shortcuts
$.each(("touchstart touchmove touchend orientationchange throttledresize " +
        "tap taphold swipe swipeleft swiperight scrollstart scrollstop" )
        .split( " " ),
        function( i, name ) { ...
<div ontap="test()">TAP ME</div>
$('[ontap]').each(function(){
    $(this).on("tap", new Function($(this).attr("ontap")));
});
$(document).on('tap', '[ontap]', function(){
     new Function($(this).attr('ontap'))();
});