长按 - ASP.NET

时间:2011-08-16 21:23:45

标签: javascript asp.net

我正在处理ASPX页面的JavaScript中的Long Press事件,但由于我没有太多经验,因为我对JavaScript有一些问题。我正在处理already asked here的问题。

当我运行代码时,我收到消息“$ 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>

感谢您的帮助。

[EDIT] - 原来我错过了ready语句,所以事件现在正在按照它应该开始。这是表现正常的最终版本。我也写这篇文章来处理iPad上的长按功能,所以如果有人试图这样做,这个代码是一个很好的起点。

3 个答案:

答案 0 :(得分:3)

您在头部区域缺少jQuery脚本注册,如:

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

$符号是jQuery的标识符,而不是JavaScript的。

此外,您的按钮不起作用,因为您正在引用服务器按钮,但您必须提供JavaScript才能正常工作:

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

答案 1 :(得分:0)

看起来您正在尝试使用jQuery(或其他类似的框架)而不实际注册相应的脚本。您将需要<script/>块或类似的构造。

答案 2 :(得分:0)

您的项目中似乎没有包含jquery。你可以使用下面的谷歌主机包括它,或去jquery.com下载并包含它。你想要将Head标签放在你写的其他脚本之上。另外,你可能想在id之前添加一个#,因为它使用了css选择器。此外,我不确定将执行多少代码,因为这是一个服务器按钮,将导致回发。

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