2012-11-04 1 views
2

JQuery Mobile로 서블릿을 호출하는 데 문제가 있습니다. iPhone 사용 서블릿 SendMp3Servlet은 목록 항목을 한 번 클릭하면 6 번 호출됩니다. Chrome의 데스크톱 버전을 사용하면 서블릿이 올바르게 한 번만 호출됩니다. 누군가 문제를 찾도록 도와 줄 수 있습니까?JQuery 모바일 iPhone 클릭 호출 서블릿 6 회

<!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(); 
} 

답변

0

JQuery와 모바일 조금 까다 롭습니다 ... 모든 먼저 왜하지 여기

코드입니다 다음과 같은 jquery 모바일 이벤트를 사용합니다. (누르기 ...) javascript onclick 이벤트가 아닙니다.

또 다른 것은 iphone에서 jquery mobile이 클릭 이벤트를 두 번 누르는 경우가 있으므로 톡을 사용해보십시오.