如何正确使用jquerymobile和phonegap中的快捷按钮?

时间:2012-08-21 18:41:19

标签: javascript android iphone jquery-mobile cordova

需要使用Phonegap应用中的onClick attr加速链接。

我想使用快速按钮插件,我在这里找到: https://developers.google.com/mobile/articles/fast_buttons

但是我不知道,如何正确使用这个插件我应该在pageinit之后添加它还是在哪里?

也许这是一个非常愚蠢的问题,但如果我试图找到一些例子,没有运气。

你可以在这里添加一些添加放置的例子,如何解决这个问题?

非常感谢。

3 个答案:

答案 0 :(得分:5)

如果您知道用户不会滚动,则touchstart(或touchend)事件会很有效。这实际上是click事件在移动设备上需要很长时间才能解决的原因,设备正在等待用户是否正在滚动或点击。

由于没有延迟派遣此事件,因此执行速度非常快:

$('#myButton').on('touchstart', function () {
    //run click code now
});

您还可以使用jQuery Mobile的vclick事件尝试使用本机触摸事件,但主要问题是您可以使用vclick调度多个事件,因此您应设置超时以仅允许一个事件一次点击,例如:

var clickOk = true;
$('#myButton').on('vclick', function () {
    if (clickOk === true) {
        clickOk = false;
        setTimeout(function () {
            clickOk = true;
        }, 350);
        //run click code now
    }
    return false;
});

这将允许事件处理程序每​​350ms只运行一次,这将处理被调度的多个事件,因为第二个事件将被忽略。

我会在伪页面初始化时运行的委托事件处理程序中设置这些事件处理程序:

$(document).on('pageinit', '.ui-page', function () {
    //bind "fast-click" event handlers now, use "$(this).find(...)" to only bind to elements of the current pseudo-page
});

答案 1 :(得分:0)

Jiri如果还不晚,我必须为我的应用做同样的事情,并需要将参数传递给函数。我通过将参数放在按钮的id(由下划线分隔)并使用此函数来完成它,该函数从每个单击按钮获取id,其类名为“clickbutton”,并将其拆分为各个参数。

$('.clickbutton').live('click', function(event) {
    event.preventDefault();
var id = $(this).attr('id');
var parts = $(this).attr('id').split("_");
    var item = parts[0];
    var button = parts[1];
    var type = parts[2];
console.log(item+button+type);
    getItemCondition(item,type);
return false;
});

但仍然存在JQM点击事件无响应的问题!

答案 2 :(得分:0)

fastclick怎么样?

FastClick是一个简单易用的库,用于消除物理点击和触发移动浏览器上点击事件之间300毫秒的延迟。目的是让您的应用程序感觉不那么迟钝,响应更快,同时避免干扰您当前的逻辑。