javascript - 防止调用函数

标签 javascript jquery

我有两部分脚本。


Part 1 :
$("mySelector").click(function() {
     alert('you call me');
})

Part 2 :
$("mySelector").click(function() {
     if(myCondition) {
          //how can i prevent calling the first function from here ???
     }
})

整个问题是我无权访问第 1 部分。因此,如果 myCondition 为真,我需要取消绑定(bind)第 1 部分中指定的事件,否则我需要调用第一个函数。

谢谢

更新:

谢谢。我不知道 stopImmediatePropagation()。但我觉得,一定有这样的东西:)

但实际上在我的情况下它不起作用:(

请看我的网站 http://www.tours.am/en/outgoing/tours/%D5%80%D5%B6%D5%A4%D5%AF%D5%A1%D5%BD%D5%BF%D5%A1%D5%B6/Park-Hyatt-Goa/

酒店描述 选项卡下,我有云轮播,当我点击非事件图像(不是正面图像)时,如您所见,我正在安慰我在那里停止即时传播(),但是然而,事件调用:(

最佳答案

如果您的处理程序先注册,那么您可以使用 event.stopImmediatePropagation像这样:

$("mySelector").click(function(event) { 
     if(myCondition) { 
          event.stopImmediatePropagation();
     } 
}) 

请注意,这会停止事件冒泡,因此它还会阻止调用父元素上的click 处理程序。

更新:如果这不起作用,那么您的处理程序将附加在您要控制的处理程序之后。这是一个使解决方案变得更加困难的问题。我建议看看您是否可以“在其他人之前”绑定(bind),否则您将不得不取消绑定(bind)现有的处理程序,然后通过保留对它的引用从您自己的处理程序中有条件地调用它。参见 jQuery find events handlers registered with an object .

关于javascript - 防止调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552257/

相关文章:

JavaScript:RegExp 构造函数与 RegEx 文字

javascript - 使用 Javascript 更改 div 的内容

javascript - "Document not defined"带有 IMacros 的 Javascript

javascript - jquery 函数不工作不会显示警报

javascript - 使用 React hook useEffect() 当对象数组属性更改时重新渲染

javascript - 为什么我的 reducer 在 dc.js 中应用的第一个过滤器和后续过滤器之间表现不同?

javascript - 如何返回多个异步调用的响应?

javascript - 确定 var 是否是 javascript 中的 elementFinder 对象的方法是什么?

javascript - 使用 jquery 从底部偏移背景

jquery - 如何使用 JQuery 检测 IE8?