gpt4 book ai didi

jQuery手机iPhone点击调用servlet 6次

转载 作者:行者123 更新时间:2023-12-01 05:58:25 24 4
gpt4 key购买 nike

我在使用 JQuery Mobile 调用 servlet 时遇到问题。使用 iPhone 我注意到,单击列表条目一次,servlet SendMp3Servlet 会被调用 6 次。使用 Chrome 桌面版时,servlet 仅被正确调用一次。有人可以帮我找出问题所在吗?

这是代码:

<!DOCTYPE html> 
<html>
<head>
<title>Canzoni</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="popola_liste.js"></script>
</head>
<body>
<script >

</script>
<div data-role="page">

<div data-role="header" >
<a href="Album.html" data-rel="back">back</a>
<h1>Project ML</h1>
</div>

<div data-role="content">
<ul id="listviewSong" data-role="listview" data-inset="true" data-filter="true">
<script>$.getJSON("GestoreCanzoni?idAlbum="+sessionStorage.getItem("idAlbum"), function(data){
var output = '';

$.each(data, function(index, value){
output += '<li><a href="#" onclick="sessionStorage.setItem(\'idCanzone\',\''+value.id+'\');"> ' + value.nome + '</li>';
});

$('#listviewSong').append(output).listview('refresh');

var event = (navigator.userAgent.match(/iPhone|iPad/i)) ? 'touchstart' : 'click';
$('#listviewSong').unbind(event).bind(event,function(e){
alert("c");
update_player();
});

});</script>
</ul>
</div><!-- /content -->

<div data-role="footer" data-position="fixed" data-id="player">
<audio id="player_audio" controls="controls">
<source id="src_player" src="sessionStorage.getItem('request_mp3')" type="audio/mpeg" />
</audio>
</div>

</div>

</div><!-- /page -->

</body>
</html>

这是点击时调用的js函数:

    function update_player(){
lastIdCanzone=sessionStorage.getItem("idCanzone");
var id=sessionStorage.getItem('idCanzone');
sessionStorage.setItem('request_mp3','/Libreria_musicale_server/SendMp3Servlet?idCanzone='+id);
document.getElementById("src_player").src="/Libreria_musicale_server/SendMp3Servlet?idCanzone="+id;
document.getElementById("player_audio").load();
document.getElementById("player_audio").play();
}

最佳答案

Jquery mobile 有点棘手......首先,为什么不使用 jquery 移动事件,例如:(点击,单击......)而不是 javascript onclick 事件。

另一件事是 iPhone 上的 jquery mobile 有时会触发两次点击事件,所以尝试使用tap。

关于jQuery手机iPhone点击调用servlet 6次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13220015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com