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

时间:2012-01-20 00:48:51

标签: javascript jquery function events click

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

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

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

3 个答案:

答案 0 :(得分:0)

尝试使用$('#MainDiv *:not(#Div)').unbind("click"); 然后,当您需要重新设置点击功能时,只需确保每个点击所做的内容都包含在其on函数中,这样您就可以执行类似$(".someEle").click(function(e){ yourCustomeFuncForThisItem(var1, var2); });

的操作

答案 1 :(得分:0)

这是事件委派的工作。 #MainDiv可能有几十个或几百个元素?只需在那里附加一个单击事件处理程序,让事件冒泡到#MainDiv,看看被点击的东西是否是#Div。

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

答案 2 :(得分:0)

你可以试试这个:

$('#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; });