Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery鼠标事件不';t火_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript Jquery鼠标事件不';t火

Javascript Jquery鼠标事件不';t火,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一个很奇怪的问题。我的示例代码[此处][1]运行得很好,但我在aptana studio编辑器中有完全相同的代码,当我在Chrome或Eclipse浏览器中尝试时,事件不会触发。我无法想象问题出在哪里,因为它是完全相同的代码 HTML 如果您的代码确实是引用的,那么问题在于,当您尝试将事件处理程序挂接到元素时,这些元素不存在。JSFIDLE的默认设置对您隐藏了这个问题。(看左边,你会看到你的代码在load事件触发之前不会运行,这在页面加载过程中非常非常晚。) 要解决此问题,请执行以下操作之一

我有一个很奇怪的问题。我的示例代码[此处][1]运行得很好,但我在aptana studio编辑器中有完全相同的代码,当我在Chrome或Eclipse浏览器中尝试时,事件不会触发。我无法想象问题出在哪里,因为它是完全相同的代码

HTML


如果您的代码确实是引用的,那么问题在于,当您尝试将事件处理程序挂接到元素时,这些元素不存在。JSFIDLE的默认设置对您隐藏了这个问题。(看左边,你会看到你的代码在
load
事件触发之前不会运行,这在页面加载过程中非常非常晚。)

要解决此问题,请执行以下操作之一:

  • 将脚本标记移动到文档末尾,在关闭标记之前或之后。当浏览器运行脚本时,元素将存在。这是谷歌和谷歌的网络工程师

  • 使用jQuery的事件


  • 结合这两种方法,您还可以考虑使用事件委派,而不是直接连接元素上的事件。您的
    mouseup
    mousedown
    处理程序将分别附加到每个
    a
    元素。那是一大堆勾搭。如果存在所有这些
    a
    元素都在其中的容器(
    body
    或者更接近的容器),您可以将事件挂接到该容器上(因为这些事件是气泡),然后检查事件是否起源于
    a
    元素。jQuery支持事件委派,为您完成了大部分艰苦的工作,通过(我喜欢它,因为它非常明确)以及最近传递给您的六个变量之一。

    如果您的代码确实是引用的,那么问题是当您尝试将事件处理程序挂接到元素时,这些元素并不存在。JSFIDLE的默认设置对您隐藏了这个问题。(看左边,你会看到你的代码在
    load
    事件触发之前不会运行,这在页面加载过程中非常非常晚。)

    要解决此问题,请执行以下操作之一:

  • 将脚本标记移动到文档末尾,在关闭标记之前或之后。当浏览器运行脚本时,元素将存在。这是谷歌和谷歌的网络工程师

  • 使用jQuery的事件


  • 结合这两种方法,您还可以考虑使用事件委派,而不是直接连接元素上的事件。您的
    mouseup
    mousedown
    处理程序将分别附加到每个
    a
    元素。那是一大堆勾搭。如果存在所有这些
    a
    元素都在其中的容器(
    body
    或者更接近的容器),您可以将事件挂接到该容器上(因为这些事件是气泡),然后检查事件是否起源于
    a
    元素。jQuery支持事件委托,为您完成了大部分艰苦的工作,通过(我喜欢它,因为它非常明确)以及最近传递给您的六个变量中的一个。

    $(document.ready(function(){})中的上述事件?对我来说很好:@HunterMcMillen:是的。注意,第二句中OP的链接也是到JSFIDLE的链接。您的工作原理与他/她的工作原理相同:jsFiddle的默认设置隐藏了这一特定错误。@T.J.Crowder我实际上包含了ready事件,这并不重要。我没有注意到他上面的链接。@HunterMcMillen:哇。我甚至先看了一眼。:-)叹气(让我们清理这些注释,它们不会添加任何内容。此注释将在…)中自毁)是您在
    $(document).ready(function(){})中的上述事件?对我来说很好:@HunterMcMillen:是的。注意,第二句中OP的链接也是到JSFIDLE的链接。您的工作原理与他/她的工作原理相同:jsFiddle的默认设置隐藏了这一特定错误。@T.J.Crowder我实际上包含了ready事件,这并不重要。我没有注意到他上面的链接。@HunterMcMillen:哇。我甚至先看了一眼。:-)叹气(让我们清理这些注释,它们不会添加任何内容。此注释将在…
    $(function(){…})
    抱歉,我对shorthand@KyleMacey. 答案是否经过编辑?我完全不能理解你的评论。@gdoron:他指的是我提到的
    ready
    事件。他更喜欢它的简写形式,即将一个函数传递到
    jQuery
    $
    )函数中。似乎是抢先的,因为您甚至没有列出函数本身。@user1011185:不用担心,很高兴这有帮助。(但请不要这样发誓。)
    $(function(){…})
    对不起,我对shorthand@KyleMacey. 答案是否经过编辑?我完全不能理解你的评论。@gdoron:他指的是我提到的
    ready
    事件。他更喜欢它的简写形式,即将一个函数传递到
    jQuery
    $
    )函数中。似乎是抢先的,因为您甚至没有列出函数本身。@user1011185:不用担心,很高兴这有帮助。(但请不要这样发誓。)
    <!DOCTYPE html>
    <html>
        <head>
            <title>OrderScreen</title>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
            <script src="js/script.js" type="text/javascript"></script>
        </head>
        <body>
                    <a href="">Test</a>
        </body>
    </html>
    
    $("a").mouseup(function() {
        clearTimeout(pressTimer);
        // Clear timeout
        return false;
    }).mousedown(function() {
        // Set timeout
        pressTimer = window.setTimeout(function() {
            alert("hcbdhaf")
        }, 1000);
        return false;
    }).click(function() {
        alert("dfsdg");
    });