jquery移动攻丝事件?

时间:2012-01-11 03:49:02

标签: jquery jquery-mobile

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

所以,如果我有:

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

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

我可以这样做:

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

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

3 个答案:

答案 0 :(得分:4)

您想要这个解决方案吗?

HTML:

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

SCRIPT:

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

答案 1 :(得分:3)

inline没有“ontap="someFunction()"点击事件”,因为tapjQuery Mobile结构。

摘自jQuery Mobile Source(注意'点击'事件):

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

答案 2 :(得分:0)

您可以使用ontap属性绑定所有元素:

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

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

实际上,您可以在HTML中替换任何属性名称,“点击”,“点击”,然后更改&#39; ontap&#39;相应地在上面的脚本中你想要的属性。

希望这有帮助!