2011-10-06 3 views
1

내 jQTouch 응용 프로그램의 링크가 href의 페이지를로드하지 못하게하려고합니다. 내 코드의 매우 단순화 된 버전은 다음과 같습니다.jQTouch 링크에서 Cant preventDefault()를 사용합니다.

<html> 
    <head> 
     <script type="text/javascript" src="/jquery.js"></script> 
     <link rel="stylesheet" type="text/css" href="/jqtouch/css-jqtouch.css"> 
     <script type="text/javascript" src="/jqtouch/jqtouch.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() 
      { 
       var jQT = $.jQTouch({}); 

       $('#row0 a').bind('click', function(e) 
       { 
        e.preventDefault(); 
        alert('test'); 
       }); 

      }); 
     </script> 
    </head> 
    <body> 
     <div id="jqt"> 
      <div id="row0"> 
       <a href="#searchResults">Search</a> 
      </div> 

      <div id="searchResults"> 
       <a href="#" class="back">Back</a> 
      </div> 
     </div> 
    </body> 
</html> 

'검색'링크를 클릭하면 경고 상자가 나타나지만 여전히 페이지가로드됩니다.

내가 누락 된 항목이 있습니까?

답변

0

나는이 문제가 있었기 때문에 클릭하면 실제로 탭에 바인딩하고 싶지 않습니다!

브라우저에서 작동하지만 모바일 버전이 실제로 듣고있는 것은 탭이며 클릭이 캡처되고 있음에도 불구하고 탭이 전파되도록 허용합니다. 일부 탭으로 인해 웹 브라우저에서 탭 작동에 주목할 가치가 있습니다. goofy code magic

탭과 클릭의 차이는 다소 혼란 스럽지만 jqtouch-jquery.js 파일의 소스를 보면 왜 탭을 사용하고 클릭하지 않는지에 대한 아이디어를 얻을 수 있습니다 (Zepto를 사용하면 무슨 일이 일어나는지 볼 수 있습니다.)