在Phonegap应用程序中绑定

时间:2013-03-23 08:16:30

标签: jquery cordova jquery-mobile javascript-events

我正在使用Phonegap构建一个应用程序,我遇到了一个奇怪的问题,即点击事件的绑定不起作用,有人知道为什么吗?

谢谢! ;)

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);

    $('._jsClick').on('click', function() {
        alert('Hi!')
    });

这是HTML

<button class="_jsClick">Click Here!</button>     

1 个答案:

答案 0 :(得分:2)

首先,您应该将点击功能更改为:

$('._jsClick').on('click', function(event) {
        alert('Hi!')
    });

你也应该:

$('div:jqmData(role="page")').on('pagebeforeshow', function(){       
    $('._jsClick').on('click', function() {
        alert('Hi!')
    });
});

$('div:jqmData(role="page")').live('pagebeforeshow', function(){       
        $('._jsClick').on('click', function() {
            alert('Hi!')
        });
    });

不是document.ready

检查此链接:how can I make jquery mobile "pagebeforeshow" event fire every time, not just on refresh。调用$.mobile.changePage时将调用上面的代码。

这应该是这样的:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
    $('div:jqmData(role="page")').die('pagebeforeshow');
    $('div:jqmData(role="page")').live('pagebeforeshow', function(){    
       $('._jsClick').off('click'); 
       $('._jsClick').on('click', function() {
        alert('Hi!')
       });
     });
    }