撤消点击(function() {return false;})

发布于 2024-12-27 20:41:35 字数 244 浏览 0 评论 0原文

我有一个疑问/问题。在某些时候,我需要除一个 div 之外的每个元素都是不可点击的,并且我有:

$('#MainDiv *:not(#Div)').click(function() {return false;});

在 MainDiv 中,我有几个其他元素(a、img...),并且我需要这些元素重新调整为可点击。可以撤消该功能,还是我需要再次设置这些元素的每个 a.href 和 img.click ?

I have a question/problem. At some point I need that every element are non-clickable except one div and I have:

$('#MainDiv *:not(#Div)').click(function() {return false;});

In the MainDiv i have several other elements (a, img,...) and I need those elements retun to be clickable. It is possible to undo that function or do I need to set every a.href and img.click of those elements again?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

会发光的星星闪亮亮i 2025-01-03 20:41:35

尝试使用 $('#MainDiv *:not(#Div)').unbind("click");
然后,当您需要重新分配单击函数时,只需确保每次单击的作用都包含在其 on 函数中,这样您就可以简单地执行类似 $(".someEle").click(function(e){ yourCustomeFuncForThisItem (var1, var2) });

Try using $('#MainDiv *:not(#Div)').unbind("click");
Then when you need to reasign the the click functions, just make sure what each click does is wrapped in its on function so you can simply do something like $(".someEle").click(function(e){ yourCustomeFuncForThisItem(var1, var2); });

云巢 2025-01-03 20:41:35

这是事件委托的工作。 #MainDiv 可能有几十个或几百个元素?只需在此处附加一键单击事件处理程序,让事件冒泡到#MainDiv,然后查看单击的内容是否为#Div。

$("#MainDiv").click(function(event){
    if ( event.target.id === "Div" ) {
      // do the thing with Div
    }
    else {
      return false;
    }
});

This is a job for event delegation. #MainDiv probably has dozens or hundreds of elements? Just attach one click event handler there, let the event bubble to #MainDiv and see if the thing that was clicked is #Div.

$("#MainDiv").click(function(event){
    if ( event.target.id === "Div" ) {
      // do the thing with Div
    }
    else {
      return false;
    }
});
握住你手 2025-01-03 20:41:35

您可以尝试以下操作:

$('#MainDiv *:not(#Div)').bind('click', false);

$('#MainDiv *:not(#Div)').unbind('click', false);

$('#MainDiv *:not(#Div)').bind('click', false); 应该相当于 $('#MainDiv *: not(#Div)').click(function() { return false; });

You can try this:

$('#MainDiv *:not(#Div)').bind('click', false);

$('#MainDiv *:not(#Div)').unbind('click', false);

$('#MainDiv *:not(#Div)').bind('click', false); should be equivalent to $('#MainDiv *:not(#Div)').click(function() { return false; });

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文