Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/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
多个jQuery.clicks,仅使用最新的_Jquery - Fatal编程技术网

多个jQuery.clicks,仅使用最新的

多个jQuery.clicks,仅使用最新的,jquery,Jquery,假设我有两个Javascript文件,includeFirst.js和includeSecond.js,正在加载到页面中。如果第一个包含以下代码: $('#myButton').click(function() { alert('Hello World'); } 第二部分包括: $('#myButton').click(function() { alert('World Hello'); } 我收到两个警报。是否有任何方法可以将某些内容添加到。在第二个中单击以使第一个不运行 我

假设我有两个Javascript文件,
includeFirst.js
includeSecond.js
,正在加载到页面中。如果第一个包含以下代码:

$('#myButton').click(function() {
   alert('Hello World');
}
第二部分包括:

$('#myButton').click(function() {
    alert('World Hello');
}
我收到两个警报。是否有任何方法可以将某些内容添加到。在第二个中单击以使第一个不运行


我意识到这种编码方法看起来很草率/糟糕,但它只是为了修复一些即将完全重写的遗留代码。我只想暂时修复此问题。

在第二个JS文件中,在附加新的单击事件之前,使用
off()
删除任何现有的处理程序:

$('#myButton').off('click').click(function() {
    alert('World Hello');
}

尝试在第二次单击事件中使用event.preventDefault()

解除现有事件处理程序的绑定 您应该解除任何现有事件处理程序的绑定,然后绑定一个新的事件处理程序。但请注意,当现有事件处理程序执行一些重要的操作,而新的事件处理程序没有复制这种行为时,这可能会产生不期望的效果

$("#myButton")
    .unbind("click")
    .click(function(){
        alert("Hello world");
    });
我已经链接了这些调用,因此它将首先解除所有现有的单击事件处理程序的绑定(当存在多个时,所有这些处理程序都将解除绑定),然后绑定一个新的处理程序

解除绑定相同类型的特定事件处理程序 如果只想解除绑定相同类型的特定事件处理程序,可以使用。它们的形式为
click.namespaceName

jQuery
.bind()
文档:

如果eventType字符串包含句点(.)字符,则 事件具有名称空间。句点字符将事件与其对应的事件分隔开 命名空间。例如,在调用
.bind(“click.name”,handler)
中, 字符串click是事件类型,字符串名称是 命名空间。名称空间允许我们解除绑定或触发 在不影响他人的情况下打字


可以使用Unbind函数删除绑定到元素的所有单击事件

      var myButton = $("#myButton");
      myButton.unbind('click');
      myButton.click(function() {
          alert('World Hello');
      }

注意:此代码尚未测试。

您可以使用
.off()
-
$(“#myButton”).off('click')。单击(函数(){alert('World Hello');}删除单击处理程序
存在事件对象的
stopImmediatePropagation
方法。将其作为第一条语句添加到两个处理程序中。这只会阻止默认行为…例如,它将阻止定位标记导航到URL等。