2011-08-16 2 views
0

ASPX 페이지의 JavaScript에서 Long Press 이벤트를 처리하는 중이지만 몇 가지 문제가있는 JavaScript에 대한 경험이 많지 않습니다. 나는 already asked here 인 질문을 연구 중이다.Long Press - ASP.NET

"$ is not defined"라는 메시지가 나타나고 $ ("Button1")을 ("Button1")으로 변경하면 mouseup 함수가 존재하지 않는다는 메시지가 나타납니다. 내가 가진 기본 문제는 제대로 aspx 컨트롤에 액세스하는 것입니다. 아래는 제 코드입니다.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript" language="javascript"> 
     $(function() { 
      var pressTimer; 
      var longPress = 1000; 

      $("#<%= Label1.ClientID %>").bind("touchend", function (e) { 
       var d = new Date(); 
       var timeDiff = d - pressTimer 
       if (timeDiff > longPress) { 
        document.getElementById("demo").innerHTML = "Mouse Up"; 
        //actual logic here 
       } 
       return false; 
      }); 
      $("#<%= Label1.ClientID %>").bind("touchstart", function (e) { 
       pressTimer = new Date(); 
       return false; 
      }); 
     }); 
    </script> 
    <title>Long Press Testing</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:label ID="Label1" runat="server" text="Hold This Down" /> 
     <br /> 
     <p id="demo"></p> 
    </div> 
    </form> 
</body> 
</html> 

도움 주셔서 감사합니다.

- 밖으로 밝혀졌습니다 준비된 성명서가 누락되어 이벤트가 현재 실행되고 있습니다. 이것은 제대로 작동하는 최종 버전입니다. 또한 iPad에서 길게 누르는 기능을 처리하기 위해이 코드를 작성했습니다. 따라서 누군가이 코드를 시작하려고하면 시작하는 것이 좋습니다.

+0

긴 프레스 란 무엇입니까? –

+0

잠시 동안 주어진 컨트롤을 길게 누르면 iPad의 생각이 길다. 마우스 오른쪽 버튼 클릭 기능의 문제 해결 방법으로이 기능이 있습니다. 이것이 내가 mousedown 및 mouseup 대신에 손을 대고 만지면되는 이유입니다. –

답변

3

당신처럼 머리 부분에 jQuery를 스크립트 등록을 누락 :

<script src="jquery.js"></script> 

$ 기호 jQuery의 식별자가 아닌 자바 스크립트의입니다.

또한, 서버 버튼을 참조하고 있기 때문에 당신의 버튼이 작동하지 않습니다,하지만 자바 스크립트가 제대로 작동하려면 당신은 ID를 제공해야합니다 : 당신이 jQuery를 (또는 다른 유사한을 사용하려고처럼

$("#<%= Button1.ClientID %>").mouseup(function() { 
     clearTimeout(pressTimer) 
     // Clear timeout 
     return false; 
    }) 
+0

+1에 jQuery가 포함되어 있지만 언급 한 선택자가 잘못되었습니다. jQuery의 ID 선택자는 CSS에서와 같이 접두어로 '#'이 붙습니다. – Jacob

+0

@Jacob 지적 해 주셔서 고맙습니다. –

+0

좋아, 왜 $ 구문을 좋아하지 않는지 설명 할 수 있습니다. 그 레퍼런스를 포함시키고 게시물에있는 것과 비슷한 블록으로 시도해 보겠습니다. 이것이 저를 위해 내일 일하는 경우에 나는 응답으로 추가 할 것이다. 감사. –

0

가 보이는 프레임 워크)를 생성 할 수 있습니다. <script/> 블록 또는 이와 유사한 구조가 필요합니다.

0

프로젝트에 jquery가 포함되어 있지 않은 것 같습니다. 당신은 아래에 구글 호스팅을 사용하여 그것을 포함시킬 수 있습니다, 또는 jquery.com에 가서 그것을 다운로드하고 그것을 포함하십시오. 당신이 쓴 다른 스크립트 위에 Head 태그를 넣으려고합니다. 또한 CSS 선택기를 사용하므로 id 앞에 #를 추가 할 수 있습니다. 또한, 얼마나 많은 코드가 실행될 지 확신 할 수 없기 때문에 포스트를 다시 발생시킬 서버 버튼이 있기 때문입니다.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

관련 문제