Jquery mobile Phonegap Android:添加jQuery Mobile时,jQuery按钮不起作用

Jquery mobile Phonegap Android:添加jQuery Mobile时,jQuery按钮不起作用,jquery-mobile,cordova,Jquery Mobile,Cordova,我有一个HTML5应用程序,我用Eclipse编译成一个Android项目,从/assets/www文件夹加载它 我使用PhoneGap媒体和jQuery(1.8.3)加载了一些音频,如下所示: //Javascript $(document).ready(function() { $(".bt_play").click(function(event) { var audio_file = $(this).attr('href');

我有一个HTML5应用程序,我用Eclipse编译成一个Android项目,从/assets/www文件夹加载它

我使用PhoneGap媒体和jQuery(1.8.3)加载了一些音频,如下所示:

//Javascript

$(document).ready(function() {
        $(".bt_play").click(function(event) {

            var audio_file = $(this).attr('href');
            playAudio('/android_asset/www/audio/' + audio_file);

            return false;
        });

    });

var my_media = null;

    function playAudio(url) {
        my_media = new Media(url, success, fail);
        my_media.play();
    }

//HTML

<a href="myAudio.mp3" class="bt_play">PLAY</a>
//Javascript
$(文档).ready(函数(){
$(“.bt_play”)。单击(函数(事件){
var audio_file=$(this.attr('href');
playAudio('/android_资产/www/audio/'+audio_文件);
返回false;
});
});
var my_media=null;
功能播放音频(url){
my_media=新媒体(url、成功、失败);
我的媒体播放();
}
//HTML
如果我不包括jQuery Mobile,上面的代码可以完美地工作,它会播放音频文件。但是,如果我包括jQuery Mobile library(版本1.3.1),甚至不更改代码中的任何其他内容,当我单击该链接而不是播放音频时,它会显示一条加载页面错误消息

我已经尝试使用jQuery移动特定函数来准备文档
$(document).on('pageinit',function(){…})而不是jQuery,但我仍然得到相同的错误


关于为什么会发生这种情况,你有什么想法吗?

一个想法可能听起来很愚蠢,可能更容易尝试,或者将pagebeforecreate而不是pageinit放在pagebeforecreate上,或者将调用放在要在onclick中调用的函数上


这个版本的JqueryMobile有很多问题,我把所有调用都放在onclick中,因为live无法工作…

我使用Omar的建议解决了这些问题:

  • 使用
    $(文档).on('pageshow',…)}而不是
    .ready()
  • click()
    事件中使用
    event.preventDefault
    ,然后删除
    返回
  • 使用
    标记中的
    data AJAX=“false”
    ,在将用户带到此页面的链接中禁用AJAX导航

我尝试了pagebeforecreate和onclick,但仍然是相同的问题。。。好的,使用onclick我没有得到错误,只是没有任何事情发生
live
.on
替换为
。自从jquery 1.7删除
.ready
返回false
,在单击后立即添加
事件。preventDefault
。我还建议使用jquery 1.9.1,另外,在按钮上添加
data ajax=“false”
属性。@Omar感谢您的回复。当您说“remove.ready”时,是否意味着我应该在不等待任何其他文档(或页面或对象)“ready”事件的情况下将“click”事件处理程序放在那里?您可以将其替换为
pageinit
pageshow
,使用JQM事件,因为
ready
不应与JQM一起使用。此外,按钮是动态插入DOM还是静态插入?@Omar它们是静态插入的。保存这些内容的页面不是初始页面。从最初的页面我称之为这个页面(有一个常规),在这里我播放音频