2011-08-16 8 views
0

私はASPXページのJavaScriptでLong Pressイベントを処理中ですが、JavaScriptにはいくつかの問題があります。私はalready asked hereだった質問の作業中です。Long Press - ASP.NET

"$は定義されていません"というメッセージが表示され、$( "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の考えです。右クリック機能の回避策として、これが用意されています。これは、マウス操作とマウスアップの代わりに触れ、触れている理由です。 –

答えて

3

あなたは次のようにヘッド部にjQueryのスクリプトの登録が欠落しています

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

$記号はjQueryの識別子ではなく、JavaScriptの者です。

また、サーバーボタンを参照しているので、あなたのボタンは、機能しませんが、JavaScriptが適切に機能するためにあなたがIDを提供する必要があります:あなたはjQueryの(または別の類似を使用しようとしているよう

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

jQueryを含めて+1しましたが、上記のセレクタは間違っています。 jQueryのIDセレクタにはCSSのように接頭辞 '# 'が付きます。 – Jacob

+0

@Jacobそれを指摘してくれてありがとう。 –

+0

$構文が好きではない理由を説明してくれました。私はその参照を含めるし、あなたの投稿に持っているものと同様のブロックでそれを試してみましょう。私が明日私のために働くなら、私は答えとして追加します。ありがとう。 –

0

が見えます実際のスクリプトを登録することなく)。 <script/>ブロックまたは類似の構造が必要です。

0

プロジェクトにjqueryが含まれていないようです。あなたは下記のGoogleのホスティングを使用してそれを含めることができます。またはjquery.comにアクセスしてダウンロードして組み込むことができます。あなたが書いた他のスクリプトの上にHeadタグを入れたいと思っています。また、CSSセレクタを使用しているため、IDの前に#を追加することもできます。また、どのくらいのコードが実行されるのかわからないのは、ポストバックを引き起こすサーバーボタンだからです。

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

関連する問題